いくつかの裏話:
昨夜、delayed_job ワーカーがイメージを処理するジョブを実行しているときに、サーバーのディスク容量が不足しました。
ワーカーを停止しようとすると、「終了しました」という応答が返されます。
RAILS_ENV=production script/delayed_job stop
Terminated
次に、次のコマンドを実行して、ワーカーが終了したことを確認します。
ps -ef | grep delayed_job
servername 4474 4274 0 02:37 pts/1 00:00:00 grep --color=auto delayed_job
今、私は新しい労働者を立ち上げようとしています。
RAILS_ENV=production script/delayed_job -n2 start
ERROR: there is already one or more instance(s) of the program running
ERROR: there is already one or more instance(s) of the program running
これは私が得ているエラーです。すべてのアクティブなワーカーを停止したように見えますが、新しいワーカーを開始できません。
これは私を混乱させたので、私は逃げました
RAILS_ENV=production script/delayed_job status
delayed_job: running [pid 0]
delayed_job: running [pid 0]
これは間違っているようです [pid 0]。ワーカーが破損しているようです。この問題を解決する方法を見つけたいと思っています。ありがとう!
Linux Ubuntu LTS 10.4 で実行しています。
編集: そこで、tmp/pids で見つけた 2 つのワーカー ファイルを削除して、ワーカーを開始および停止できるようにしました。ただし、tmp フォルダーに PID ファイルを生成する必要があるため、ワーカーは何も実行しません。