0
私は、Azure WebJobsを使用してキューをポーリングし、メッセージを処理しています。Azure WebJobsキューメッセージがAzureキューから削除されないようにする方法はありますか?
メッセージ処理の一部に、ヒットからサードパーティのHTTPエンドポイントが含まれます。 (天気予報APIや株式市場APIなど)。
ここで、apiへのヒットが失敗した場合(ネットワークエラー、500エラー、何でも)私のコードでこれを試してみてください。
私が...続けば、私はメッセージがWebJobs SDKによって削除されますと仮定し。
1)SDKに言う - このメッセージを削除しないでください(そのメッセージが再び表示されているとき、それは次のキューのポーリングとで自動的に再試行されます):私はどうすればよい
。
2)SDKが処理のためにキューからメッセージをポップするときに、不可視時間値を設定します。
ありがとうございます! APIへのヒットが失敗した場合
https://azure.microsoft.com/en-in/documentation/articles/websites-dotnet-webjobs-sdk-storage-queues-how -to /#poison、あなたの関数がエラーを投げた場合、メッセージは削除されないと思います。あなたは例外を記録し、その例外を再実行することで試してみることができますか? –
あなたはエラーを処理し続けることはできないが、失敗することを想定すると、リクエストが5回以上失敗した場合、メッセージは 'posion - {{your_queue_name}} 'と呼ばれる別のキューにプッシュされます。失敗したメッセージを処理するためにこのキューをリッスンします。不可視価値の意味を明確にしてください。あなたはロックを意味します。 – Jaya
@JS_GodBlessAllドキュメントを読むと、 '5'は再試行回数のデフォルト値ですが、設定可能です。この値を本当に高い値に設定した場合、メッセージは毒キューに移動しません(「手動の毒メッセージ処理セクション」を参照)。私は正しいですか? –