3

アイテムのステータスを格納する Service Bus Queue Brokered Message にプロパティを保持できるようにしたいと考えています。そのため、何らかの理由でアイテムが再処理された場合、プロセスのどこに到達したかを示すレコードがあります (再試行ロジックを改善します)。

したがって、キューからアイテムを取得するための以下のコードがあります。

var brokeredMessage = 
    _queueClient.Receive(TimeSpan.FromSeconds(DEFAULT_WAIT_TIME_IN_SECONDS));

次に、次のようにステータス列挙型を保持するようにプロパティを調整します。

brokeredMessage.Properties.Add("Status", MessageStatusEnum.MessageReceived);

このように Brokered Message 内で新規/更新プロパティを永続化することは可能ですか?追加のメソッドを呼び出す必要がありますか?それとも、受信後にプロパティに加えられた変更は失われますか?

4

1 に答える 1

3

現在、キュー内の既存の仲介メッセージを更新する機能はありません。プロパティを既存のブローカ メッセージに追加できますが、メッセージ自体に対して操作を実行しているAbandon場合に限られます。http://msdn.microsoft.com/en-us/library/windowsazure/jj673129.aspxDeadLetterを参照してください。

を介してワークフロー/メッセージのグループの進行状況を保存するシナリオをサポートしていますMessageSession。ここでは基本的にSessions、呼び出したメッセージを処理するのではなく、Queue/Subscription を有効にしてからAcceptMessageSession. メッセージのSessionIDプロパティは、それが属するセッションを決定します。各セッションには、 からアクセスできる利用可能な状態がGetStateありSetStateますMessageSession。また、強力な一貫性を保証できるように、これらすべての操作でトランザクションがサポートされています。以下は、セッションとセッション状態の使用を示すサンプルです: http://code.msdn.microsoft.com/Brokered-Messaging-Session-41c43fb4

于 2013-07-12T21:39:21.440 に答える