MSMQのMaxtriesが5である状況があります。5回後、nservicebusは、定義したエラーキューにメッセージを送信します。今私はこれが起こったときにいくつかのさらなるアクションを実行したい(私はいくつかのプロセスのステータスをErrorに更新しなければならない) これらのエラーキューを読むためにSagaクラスのハンドラを書くことは可能ですか?アドバンス ハリスNServiceBus Sagaでエラーキューのハンドラを書き込む方法は?
1
A
答えて
2
で
おかげで、あなたは2.xのを使用している場合は、エラー・キューは、その入力キューである別のエンドポイントを書いて検討する必要があります。これの欠点は、メッセージがキューから出ることです。それでもそれらを保存したいと仮定した場合、それらをデータベースなどのストレージにプッシュする必要があります。
メッセージをチェックするためにエラーキューをポーリングし、適切なステータスを更新するSagaを作成することもできます。キューをチェックするたびに、別のタイムアウトを要求する必要があります。
3.0では、例外をより詳細に制御でき、独自の方法でエラーを処理できます。インターフェイスIManageMessageFailuresを実装すると、そこで作業を行うことができます。
0
Adamが提供するソリューションの代わりに、メッセージがエラーキューに送信されたときに発生するServiceControlによって生成されたイベントをサブスクライブすることができます。これに関する公式のドキュメントはこちらhttp://docs.particular.net/servicecontrol/contracts
もう1つのアプローチは、ここに記載されている通知APIです:http://docs.particular.net/nservicebus/errors/subscribing-to-error-notifications。エンドポイントで直接「MessageSentToErrorQueue」などの特定のイベント(イベント・メッセージではない)をサブスクライブすることができるため、エラー・キューを使用する必要はありません。
関連する問題
- 1. Goに汎用ハンドラを書き込む方法は?
- 2. NServiceBus Saga Persistence
- 3. Nservicebus 3でエラーキューを綿密に定義する方法はありますか
- 4. スイッチケースを使用して2つのハンドラを書き込む方法
- 5. DataGridViewをプログラムで書き込む方法
- 6. Readerのアプリケーションインスタンスを書き込むときに<*>を書き込む方法
- 7. バイナリファイルに書き込む方法は?
- 8. パーティション/データファイルに書き込む方法は?
- 9. DLQに書き込む方法は?
- 10. OCamlファイルに書き込む方法は?
- 11. チャンネル3に書き込む方法は?
- 12. Uint8ClampedArrayに書き込む方法は?
- 13. ContactStore.Contact.Phonesに書き込む方法は?
- 14. SPANタグに書き込む方法は?
- 15. C#でファイルに書き込む方法
- 16. 2つのキーを含むパスを書き込む方法は?
- 17. マークダウンテーブルに箇条書きリストを書き込む方法は?
- 18. $ .getJSONにオプションパラメータを書き込む方法
- 19. ノード - オーディオファイルを書き込む方法
- 20. インクルードファイルにハイパーリンクを書き込む方法
- 21. ReactiveSwift:タスクスケジューラを書き込む方法
- 22. バッファにバッファを書き込む方法
- 23. ローカルドキュメントライブラリにファイルを書き込む方法
- 24. Log4jをコンソールに書き込む方法
- 25. ログインプラグインをMediaWikiに書き込む方法
- 26. リンクリストオブジェクトをファイルに書き込む方法
- 27. Javadocにタグを書き込む方法
- 28. インパラデータベースにスパークデータフレームを書き込む方法
- 29. カーネルスペースにパケットを書き込む方法
- 30. フォームデータをテキストドキュメントに書き込む方法
ありがとうございました。最初にNServiceBus 3.0をインストールしてから、何が最善の解決策であるかを見てみましょう。 – user993104