sidekiq +每当+独角兽未初始化的恒定ClassWorker生产环境

BuD*_*Den 5 ruby cron whenever sidekiq

我使用Rails 4,sidekiq 2.13.1,每当cron脚本每2分钟运行一次.在第一次执行期间没有错误但是所有下一次都会出错.我只在生产环境中遇到此错误.我的工作人员位于app/workers中.我通过在application.rb中跟随字符串来包含它:

config.eager_load_paths += %W(#{config.root}/app/workers) 
Run Code Online (Sandbox Code Playgroud)

错误:

2013-08-15T12:34:05Z 31102 TID-oh1d0 WARN: {"retry"=>true, "queue"=>"default", "class"=>"AllGlobalWorker", "args"=>[], "jid"=>"c8f5827813277c890b4a621e", "enqueued_at"=>1376570045.3903732}
2013-08-15T12:34:05Z 31102 TID-oh1d0 WARN: uninitialized constant AllGlobalWorker
2013-08-15T12:34:05Z 31102 TID-oh1d0 /home/shared/bundle/ruby/2.0.0/gems/activesupport-4.0.0/lib/active_support/inflector/methods.rb:226:in `const_get'
Run Code Online (Sandbox Code Playgroud)

有什么想法吗?谢谢.

BuD*_*Den 2

通过将此行添加到 production.rb 配置文件并将我的工作人员和依赖项类移动到 lib 文件夹来解决它。这是配置:

config.eager_load = true
config.eager_load_paths += %W(#{config.root}/lib)
config.autoload_paths += %W(#{config.root}/lib)
Run Code Online (Sandbox Code Playgroud)