Ari*_*rif 2 sidekiq ruby-on-rails-4
我正在使用 Rails 4.1.5 和 Sidekiq 3.3.0。我已将这个工人的重复设置设置为每一分钟后执行一次。它在本地运行良好,但在生产和登台环境中引发错误。尽管工作人员正在执行其工作并保存记录,但仅在一分钟后抛出错误。
2016-01-21T10:50:00.594Z 5173 TID-osv5dzz5o WARN: uninitialized constant ViewDBWorker
Run Code Online (Sandbox Code Playgroud)
应用程序/工人/view_db_worker.rb:
class ViewDBWorker
include Sidekiq::Worker
include Sidetiq::Schedulable
recurrence { hourly.minute_of_hour((0..59).to_a) } if Rails.env.staging? || Rails.env.production?
def perform
begin
do_process()
rescue => e
puts "Error message: #{e.message}"
end
end
def do_process()
puts 'The worker !!'
end
end
Run Code Online (Sandbox Code Playgroud)
应用程序.rb
config.eager_load_paths += %W(#{config.root}/app/workers)
Run Code Online (Sandbox Code Playgroud)
application.rb如果您在app/*rails 文件夹中定义了工作类,则不需要添加目录来加载路径。Rails 会自动加载这些文件。
如果你已经在其他地方定义了你的类,例如在lib/worker/*文件夹中,那么你需要将它添加到你的application.rb
config.autoload_paths += %W(#{config.root}/lib/workers)
config.eager_load_paths += %W(#{config.root}/lib/workers)
Run Code Online (Sandbox Code Playgroud)
除此之外,您的问题可能是运行 sidekiq 进程。你可以看到你的 sidekiq 进程(ps aux | grep sidekiq)并杀死它们。然后重启worker。
参考:https : //github.com/mperham/sidekiq/issues/1958
检查@pkoltermann 对这个问题的回答
| 归档时间: |
|
| 查看次数: |
783 次 |
| 最近记录: |