我遇到了一个极其奇怪的Resque问题。令人难以置信的resque问题 - 未初始化的常量MyWorker
- 我得到5名工人跑,有一个队列,等待工作。
- 我得到了1型Resque工人:MediaAnalyzer
这里是世界上最奇怪的事:有时(是的,有时),resque找不到类MediaAnalyzer。
为什么有时?因为有时候工作没有任何问题。还有一些时候我得到了。更奇怪的是,如果我通过resque-web重试这个工作,几次之后,工作人员终于找到并执行了......
所有的工作人员都以相同的方式启动(除了PID和日志路径):
su -c "cd /myapp/current; bundle exec rake environment resque:work RAILS_ENV=production QUEUES=* BACKGROUND=yes PIDFILE=/myapp/current/tmp/pids/resque_worker.1.pid 2>&1 >> /myapp/shared/log/resque_worker.1.log" - rails
注:在前台模式我继续得到同样的错误控制台上手动启动时也是如此。
我甚至尝试通过resque手动加载类:设置任务:
task "resque:setup" => :environment do
require Rails.root.join("app/workers/media_analyzer").to_s
end
这个原因没有错误,我可以在此require
后使用一切都在上课,我可以输出的东西,所以这个rake任务实际上被称为...但resque保持在稍后加载此类的失败。
最大的难点就是这个bug真的是真的随机!
这里是例外回溯的引擎收录:http://pastebin.com/jy5UakB8
试图与resque 2.0,同样的问题。
如果你知道发生了什么,你是一个天才!
我没问题通过控制台访问'''MediaAnalyzer''':/ '''app/workers'''在加载路径中... – PofMagicfingers
但是即使当需要(成功) ''resque:setup''',resque保持“随机”失败加载类。即使我可以在没有任何问题的情况下访问resque:setup中的类。 – PofMagicfingers