0

注文を作成する方法を備えた注文Webサービスがあります。メソッドが呼び出されると、メッセージがサービスバスに送信され、注文メッセージハンドラーによって処理されます。

日次および月次で、注文レポートを生成する必要があります。通常、注文をデータベースに保存する注文メッセージハンドラーがあり、データベースから読み取り、レポートを生成するスケジュールされたタスクがあります。しかし、これを行うためのよりメッセージ指向の方法があるかどうか疑問に思いましたか?

注文メッセージハンドラーに、さまざまなレポートサービス(毎日および毎月など)がサブスクライブできるメッセージを公開させることを考えました。メッセージは、サービスが指定された間隔(毎日/毎月)でアクティブ化されるまで、指定されたキューに蓄積されます。次に、サービスはキューでメッセージを処理し、レポートを生成します。これは行く方法ですか、それとも私は行く方法ですか?

どんなポインタでも大歓迎です。

アップデート

(NServiceBusを使用して)メッセージを発行者キューに保持し、指定された間隔でのみ発行することは可能ですか?または、パブリッシャーがすぐに公開し、サブスクライバーによる処理がスケジュールされるように、逆にする必要がありますか?

4

2 に答える 2

1

Service Bus自体がスケジュールされたメッセージをサポートしており、ScheduledEnqueueTimeを設定すると、メッセージが利用可能になります。そうすれば、イベントの時間/スケジュールに使用できます。このプロパティの詳細については、http://msdn.microsoft.com/en-us/library/microsoft.servicebus.messaging.brokeredmessage.scheduledenqueuetimeutc.aspxを参照してください。

于 2012-01-09T04:56:10.607 に答える
0

NServiceBusは、長時間実行されるプロセス用にSagasと呼ばれる概念を実装しています。http://nservicebus.com/Sagas.aspxをご覧ください。[タイムアウト]セクションは、探しているものを参照していると思います。

于 2012-01-06T18:37:09.287 に答える