2016-04-07 4 views
0

私は転送としてAzureサービスバスでNservicebus 4.7.5を使用しています。私のエンドポイントは単にイベントのサブスクライバであり、何も公開しません。私のエンドポイントは、空のストレージにイベントコールを受け取り、CRUDを実行します。Nservicebus - 一時的にエンドポイントをサスペンドします

一時的に晴れのストレージデータセンターがオフラインになると、エンドポイントは引き続き実行され、メッセージはデッドレターキューに入ります。

一時的な問題がストレージ内にある場合にエンドポイントを消費するメッセージを停止する方法を探しています。そのため、デッドレターに入ることを防ぐことができます。

答えて

0

あなたはASBが古いメッセージを破棄し、メッセージを全く持たないと考えましたか?少なくとも今はエラーキューに入れています。稀な例外を数えて、回避策を構築するのではなく、発生した場合に対処する方が良い方法は、多くはです。

私のオフィスに停電があり、6ヶ月に1度のように起こるとします。私はこのためにディーゼル発電設備を建設することはしません。代わりに、私はすでに持っているものを使ってこれらの停電を処理する方法をいくつか計画しています。

処理を完全に停止したい場合は、circuit breakerを実装することができます。 NServiceBusは、トランスポートが停止したときにNServiceBusを使用します。ブロブストレージがサービスにとっても同様に重要なコンポーネントであれば、それも使用できます。 (あなた自身のバージョンを開発しない限り)いくつかの再試行の後、サービスを完全に停止します。

+0

@Alexeyが言ったことを追加するには、SLRを拡張するように設定することもできます。 SLRを30分、3回に設定した場合、30,60,90分後に再試行します。これは、停止シナリオにも役立ちます。 –

関連する問題