0

Google はこれについてあまり役に立たなかったので、ここの誰かがアイデアを持っていることを期待していました.

私のアプリはサーバー上で正常に動作しますが (最近は heroku でも正常に動作していました)、1 時間ほど前に特定のページ (実行中のdelayed_job の影響を受ける情​​報を表示するページ) を開こうとすると、 Heroku エラーが発生し、ログには (他の多くのことの中でも) 次のように表示されます。

dyno=web.1 queue=0 wait=5ms service=119ms status=500 bytes=643
2012-11-07T23:17:44+00:00 app[worker.1]:    (1.3ms)  SELECT COUNT(*) AS count_all, priority AS priority FROM "delayed_jobs" WHERE (run_at < '2012-11-07 23:17:44.830238' and failed_at is NULL) GROUP BY priority
2012-11-07T23:17:44+00:00 app[worker.1]:    (2.5ms)  SELECT COUNT(*) FROM "delayed_jobs" WHERE (failed_at is not NULL)
2012-11-07T23:17:44+00:00 app[worker.1]:    (1.2ms)  SELECT COUNT(*) FROM "delayed_jobs" WHERE (locked_by is not NULL)

明らかに、delayed_job に問題がありますが、どこから調べればよいかわかりません。特に、以前はどのように機能していたのか、サーバー上でまだ機能しているのかを考えると。

問題が何であるか、またはデバッグを開始する方法について何か考えはありますか?

4

1 に答える 1

0

DJ で処理されているジョブにある可能性が高く、ログにエラー メッセージが挿入されない場合があります。ログで特定のワーカー メッセージを検索し、エラーを確認できます。これを行うことの問題は、いつジョブが実行されるかを確認する必要があることです。そうしないと、ログの間違った部分を調べている可能性があります。

heroku run logs || grep worker

次に、ビューがエラーをレンダリングした理由を理解する必要があります。ビューはワーカーではなくアプリによってレンダリングされるため、アプリで何かが同期していません。何が間違っているのかを正確に把握してください。それは、あなたのワーカーが何をした/しなかったかを示しているかもしれません。

于 2012-11-08T05:37:46.860 に答える