状況私のLaravel Queueジョブが60秒後に失敗するのはなぜですか?
私は(わずか1時間まで言うことができます)個々のジョブが分かかることが予想され、メディアファイルを大量に処理するために、Laravelキューを使用しています。
スーパーバイザを使用してキューを実行していますが、一度に20個のプロセスを実行しています。上司の設定ファイルは次のようになります。
[program:duplitron-worker]
process_name=%(program_name)s_%(process_num)02d
command=php /var/www/duplitron/artisan queue:listen database --timeout=0 --memory=500 --tries=1
autostart=true
autorestart=true
user=duplitron
numprocs=20
redirect_stderr=true
stdout_logfile=/var/www/duplitron/storage/logs/duplitron-worker.log
私が説明する方法を知っているか、正しいませんいくつかの奇妙あります
- 私の仕事はかなり一貫して60〜65秒間実行した後に失敗するが、 。
- 失敗したとマークされた後、は、失敗としてマークされた後でも、を実行し続けます。最終的に彼らはうまく解決することに終わります。
- 問題の原因を見つけるために私がrun the failed task in isolationになったときに問題なく成功します。
私は強く、これはタイムアウトの問題であると考えています。しかし、私は--timeout=0
が無制限のタイムアウトになるという印象を受けました。
質問
どのように私は、この一時的な「失敗」のジョブ状態を防ぐことができますか?私が気付いていないキューのタイムアウトが発生する可能性のある他の場所はありますか?
は 'あなたのphp.iniをmax_execution_time' をチェックし、それはどのくらいを言うのでしょうか?それが60秒なら、あなたの問題がある。タイムアウトを長くしてみてください。 –
グレート思考@WillyPtは - php.iniの設定はいえ、全体のスクリプトを終了しないのでしょうか?それは解決し続けます。 (FWIW 'max_execution_time'が30代に設定した、私は探検し、それらの線に沿って実験します)。 – slifty