2017-02-01 23 views
0

遅延ジョブをデバッグする最善の方法は再起動しません。delayed_jobは再起動しません

再起動を実行すると、処理が再開されたことが示されますが、グロッピングではプロセスが示されません。

$ RAILS_ENV=production ruby script/delayed_job -n3 --pid-dir=/dem/pids/ restart 
Warning: no instances running. Starting... 
Warning: no instances running. Starting... 
Warning: no instances running. Starting... 

$ ps -aux | grep delay 
produser 3471 0.0 0.0 7232 612 pts/4 S+ 10:28 0:00 tail -f delayed_job.log 
produser 4059 0.0 0.0 11740 928 pts/0 S+ 10:32 0:00 grep --color=auto delay 

$ RAILS_ENV=production ruby script/delayed_job -n3 --pid-dir=/dem/pids/ restart 
Warning: no instances running. Starting... 
Warning: no instances running. Starting... 
Warning: no instances running. Starting... 

delay_job.logファイルを処理している間、処理が再開し、サイレントに失敗したことが示されます。

2017-02-01T10:48:04-0800: [Worker(delayed_job.0 host:app pid:6257)] worker started 
2017-02-01T10:48:04-0800: [Worker(delayed_job.1 host:app pid:6267)] worker started 

答えて

0

私自身の質問に対する答えが見つかりました。誰かが検索で見つかった場合にここにロギングします。

あなたが同じような状況で自分自身を見つける場合は、フォアグラウンド(ではないバックグラウンド)でプロセスを実行しているを試してみてください

RAILS_ENV=production ruby script/delayed_job --pid-dir=/dem/pids/ run

出力されました:

found unexpected end of stream while scanning a quoted scalar at line 165 column 14

には、Djソースの結果が含まれています。Malformed yaml in handler could crash all delayed_job workers


これは大きなリードでした。

  • ハンドラ/データが不正な形式の場合、DJは黙って失敗します。
  • 電子メールをDJで処理すると、誰かが電子メールを転送した場合にそのスレッドが含まれるため、大量のハンドラー列が存在する可能性が高くなります。よかった。

私は何をしましたか?私は電子メールハンドラーのためにdelayed_jobsを問い合わせました。

結果は何ですか?大規模なハンドラを持つ1つのジョブ。

もおそらくちょうどquery for the longest columnになります。

ジョブを削除してrunコマンドを実行した後、正常に処理を開始しました。

関連する問題