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()デバッグ後、デーモン化された環境で実行すると、再現可能なセグメンテーション違反が発生することが判明しました。これは、デーモン化によって適切に処理されないように見えるランダムジェネレーターの初期シードとセットアップに関係しています。

ソリューション:Random.new.rand()

于 2012-08-08T16:36:55.917 に答える
1

このスタック オーバーフロー DJ ログの質問の奇妙な動作が、あなたの動作を説明できるかどうか疑問に思っています。答えももっともらしく見えます。見知らぬことが起こりました。

パート 2: パーミッションの問題? それを台無しにしている可能性もあります。これは本番または開発中ですか?Devで動作しますか?

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 に答える