遅延ジョブが実行中かどうかを表示する必要があるステータス ページを設計しています。コード内でそれを見つける方法を教えてください。
Rails 3.0.20、ruby 1.8.7 (2011-06-30 パッチレベル 352)、およびdelayed_job 3.0.4 を使用しています
遅延ジョブが実行中かどうかを表示する必要があるステータス ページを設計しています。コード内でそれを見つける方法を教えてください。
Rails 3.0.20、ruby 1.8.7 (2011-06-30 パッチレベル 352)、およびdelayed_job 3.0.4 を使用しています
使用できます
RAILS_ENV=production script/delayed_job status
本番モードでチェックしている場合
delayed_job daemon
現在のところ、が常に実行されていることを確認する最善の方法はinitializer
、デーモンが実行されているかどうかを確認する を Rails アプリケーションに追加することです。実行されていない場合、 は をinitializer
開始しdaemon
ます。それ以外の場合は、そのままにしておきます。
したがって、問題は、 がDelayed_Job daemon
スクリプト内から実行されていることをどのように検出するかということです。
簡単な方法 -
デーモンの存在を確認しますPID file
(File.exist? ...)。そこにある場合は、実行中であると想定し、そうでない場合は起動します。
ジョブのステータスなどを確認するには、キューに入れられたすべてのジョブを登録するdelayed_job_web gemを使用できます。そして、それが常に実行されていることを確認するには、monit をインストールします。レールキャストはこちら。delayed_job の monit を構成する方法の詳細は次のとおりです。