4

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_jobmongoid具有相同的结果。

有人知道如何调试吗?

使用:

rails (3.2.7)

delayed_job_mongoid (2.0.0)

mongoid (3.0.3)

delayed_job (3.0.3)

4

2 回答 2

6

结果delayed_job是正在执行导致分段错误的作业,这将杀死delayed_job 守护程序。

调试后发现Random.rand()在守护程序环境中运行时会导致可重现的分段错误。这与随机生成器的初始播种和设置有关,这显然没有被 daemonize 正确处理。

解决方案:Random.new.rand()

于 2012-08-08T16:36:55.917 回答
1

我想知道这个堆栈溢出 DJ 日志问题中的奇怪行为是否可以解释您的行为。答案看起来也很合理。奇怪的事情发生了。

Pt 2: 权限问题?也很可能把它搞砸了。这是在生产还是开发中?它在开发中有效吗?

PT 3:来自 DJm 的 github 页面 确保您使用的是 MongoDB 版本 1.3 或更高版本。你是?pt 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从顶部开始添加到该脚本并向下工作。

于 2012-08-06T23:51:53.823 回答