私はAzure Storage Queuesを使用してメッセージをポストしてから、そのメッセージをdbテーブルに書き込みました。しかし、キューのメッセージの処理中にエラーが発生した場合、メッセージはポイズンキューに書き込まれることに気付きました。ここでAzureストレージキュー - ポイズンキューのメッセージを処理する
は私のアプリの設定にいくつかの背景です:
AzureのWebアプリケーション - >キュー
Azureの機能にメッセージを書き込み - >キュートリガはメッセージを処理し、デシベル
に内容を書き込み、INSERTに失敗したdbスキーマに問題がありました。各メッセージは5回再試行されました。これはキューメッセージの再試行のデフォルトであると考えられ、5回目の試行後にメッセージがポイズンキューに置かれました。
dbスキーマはその後修正されましたが、今はpoisonキューのメッセージを処理する方法がありません。
私の質問では、ポイズンキューに書き込まれたメッセージを処理し、それらをデータベースに挿入する方法がありますか?あなたの特定の問題については
これは、「破損した」メッセージが永遠にリサイクルされる場合の最善の方法であるとは確信していません。 – alwayslearning
@alwayslearning合意された、それで私は 'この特別な問題のために'と言ったのです。そのコードは、最近の不具合によって引き起こされたポイズンメッセージをポンピングするために短い時間だけ実行され、次に削除されます。コードは、グリッチによって引き起こされなかった非常に古いメッセージ(タイムスタンプ分)も無視することができます。 – sANDwORm
私の同意するシナリオでは、メッセージが元のキューにコピーされ、dbが修正されたので再度処理することになります。だからこそありがとう。 ただし、これは運用環境でどのように機能しますか。別のエラーが発生する可能性があります。また、@alwayslearningによると、メッセージは永遠に再試行される可能性があります。メッセージがキューに追加されたときに誰かに通知すると、どのような手作業のステップを使用できるかを知りたいのです。 – laffaner