2016-12-09 3 views
1

サガとメッセージのいくつかをリファクタリングして新しいネームスペースに移動したいと思います。Nservicebusはサガ/メッセージのネームスペースを変更します

私は既存のワーカー・キューをクリアすることができず、古いサガ/メッセージは、すべて消えてしまうまで動作させる必要があります。

私は、ネームスペースだけのサガ/メッセージの動作を変更することはありません。古いサガ/メッセージが正しく処理され続けるように、これらを一括更新する簡単な方法があります。

ここで心配する必要があることは、これを行うことですか?

+0

どのような持続性を使用しますか? –

答えて

0

飛行機内のすべてのインスタンスをブランケットで更新できるかどうかはわかりません。私はあなたがRaven-fu(あるいはそれを使っているなら、SQL)でできることがあると思います。

問題点は、NServiceBusはメッセージタイプの完全修飾名を使用してルーティング目的で識別するため、複雑な問題であり、最初に正しく取得したいことです。

あなたがしていることは、あなたのアーキテクチャに新しいメッセージが満載だということです。変更を並行して導入し、実行中のすべてのサガインスタンスが完了できるようにしてから、廃止された、そして現在は使用されていないビットを廃止することは安全かもしれません。このよう の追加やプロパティを削除するなどのメッセージタイプに大きな変化が存在する場合には

NSBのドキュメントでは、飛行中のサガに特別なものはありませんが、重大な変更の取り扱いについて言うべきthis ...

を持っていますプロパティの種類を変更するなど、アップグレードの手順は次のとおりです。

  • 新しいバージョンとの契約を更新します。
  • 新しい契約バージョンを使用するように送信者を更新します。次のような受信者に変更が表示されていることを確認してください。 を使用して既存のプロパティを装飾する のプロパティを削除または名前を変更するときに警告が表示される廃止された属性。
  • 新しい契約バージョンを処理する受信者を更新します。新しいプロパティが正しく処理されていることを確認してください。 .NET にint age = 1のデフォルト値を設定する代わりに、NULL可能な の型を使用し、欠損値をnullとして表す方が良いです。
  • すべての送信者と受信者が更新され、古い形式の機内メッセージが処理されたら、プロパティを無効にして エラーをスローするか、単純に削除します。
関連する問題