DJ死后,日志文件没有显示任何内容。
正在运行:./script/delayed_job status
给出:pid-file for killed process 1143 found (/appPath/tmp/pids/delayed_job.pid), deleting.
delayed_job: no instances running
奇怪的是,如果我使用:./script/delayed_job run
它将在前景中完美运行!永远不会死。
尝试了许多版本的delayed_job
和mongoid
,结果相同。
任何人都知道如何调试?
使用:
rails (3.2.7)
delayed_job_mongoid (2.0.0)
mongoid (3.0.3)
delayed_job (3.0.3)
答案 0 :(得分:6)
结果delayed_job
正在执行导致分段错误的作业,这会终止delayed_job守护程序。
调试后,结果Random.rand()
将在守护程序环境中运行时导致可重现的分段错误。这与随机生成器的初始播种和设置有关,显然无法通过daemonize正确处理。
解决方案:Random.new.rand()
答案 1 :(得分:1)
我想知道这个stack overflow DJ log question中的奇怪行为是否可以解释你的行为。答案看起来似乎也是合理的。发生了奇怪的事情。
Pt 2: Permission issues?也可能很好地解决它。这是生产还是开发?它在Dev中有用吗?
PT 3:从DJm的github页面确保您使用的是MongoDB 1.3或更高版本。你是?
第4页:这个? script/rails runner 'Delayed::Backend::Mongoid::Job.create_indexes'
最后,截至今天,DJM在Travis上运行了红色,但有些错误可能会影响到你。我曾经在宝石上做了一次粗制滥造,让我只能在2天后饮用。 http://travis-ci.org/#!/collectiveidea/delayed_job_mongoid/jobs/1962498
如果不是这样,请在Gemfile中抛出pry,从顶部开始向该脚本添加binding.pry
并继续工作。