高負荷のために外部APIが失敗するため、Laravelでキューに登録されたジョブが失敗することがあります。問題は、私の選択肢が、Laravel QueueがAPIリクエストを成功させるか、X個のリクエスト後に停止するように指示するまで、APIをハンマーにし続けるように見えることです。Laravelで失敗したキュージョブの試行の間に遅延を作成するにはどうすればよいですか?
私の仕事はどのように失敗するかに基づいて、ハンマーで引き続き行うのではなく、5分後にもう一度試してみる方法はありますか?
ビルドインキューハンドラを使用したいが、再試行機能は実際の障害シナリオを処理するために構築されていないように見える。私は仕事を失敗する多くの理由は、すぐに再試行することで解決されないと思います。あなたは何ができるか
ありがとう、私は仕事を解放するものの誤解を持っていました。また、delete()関数はどこにありますか?それは文書化されていないようです。私は、失敗したジョブテーブルにジョブを配置してジョブを削除するサポートされた方法があることを期待しています。 – Citizen
ソース:https://github.com/laravel/framework/blob/5.1/src/Illuminate/Queue/InteractsWithQueue.php –
失敗したジョブテーブルに追加する方法については、こちらを参照してください。私はこれがどのように動作するのかはよく分かりませんが、(再)例外をスローして、キューワーカーによって処理されるようにしなければならないかもしれないと信じています。 –