0

我有一个订单 Web 服务,它具有创建订单的方法。当调用该方法时,一条消息被发送到服务总线并由订单消息处理程序处理。

我必须每天和每月生成一份订单报告。通常我会让订单消息处理程序将订单存储在数据库中,然后有一个从数据库读取并生成报告的计划任务。但我想知道是否有更面向消息的方式来做到这一点?

我想过让订单消息处理程序发布一条消息,各种报告服务(例如每日和每月)可以订阅。消息将在给定队列上累积,直到服务以给定的时间间隔(每天/每月)激活。然后,服务将处理其队列上的消息并生成报告。这是要走的路还是我要走的路?

任何指针将不胜感激。

更新

是否可以(使用 NServiceBus)将消息保存在发布者队列中,然后仅在给定的时间间隔发布它们?还是应该反过来,以便发布者立即发布并安排订阅者的处理?

4

2 回答 2

1

服务总线本身支持预定消息,您可以在其中设置 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我认为Timeout部分是指您要查找的内容。

于 2012-01-06T18:37:09.287 回答