无法在 Sidekiq worker class 中调用 Rails 个模型

Unable to call Rails Models inside Sidekiq worker class

我正在使用 sidekiq 调度程序 gem 在后台安排和 运行 任务。 设置工作正常,任务得到正确安排和执行,但是,如果我想要 rails 模型内部的 运行 方法,我不能。我就是这样 运行 sidekiq:

sidekiq -r ./app/workers/get_new_users.rb -e production

如何让我的 get_new_users 脚本调用模型中的方法?

require 'sidekiq-scheduler'


class GetNewUsers
  include Sidekiq::Worker


  def perform
    puts User.find(1)
  end
end

谢谢

只需删除 -r 参数,sidekiq 就会加载您的 rails 环境(阅读:您所有的模型和其他东西)

您也可以删除 -e(然后将从 RAILS_ENV env var 中获取,无论如何都应该设置)。

通过捆绑器 运行 您的二进制文件是个好主意。所以,你的命令变成这样:

 bundle exec sidekiq