计划执行与NServiceBus合并的应用程序

时间:2011-11-13 22:59:43

标签: c# scheduled-tasks nservicebus

我想让应用程序每天运行一次,当它启动时,它必须读取它所订阅的队列中的所有消息,进行一些处理,发布消息然后关闭。这些消息是通过NServiceBus发送的,您如何判断它们何时被处理完毕?我无法弄清楚如何处理队列中的所有消息并告诉队列何时为空。

1 个答案:

答案 0 :(得分:1)

这听起来像是一个架构问题,而不是NSertviceBus特定的。

这就是我用NSB解决它的方法:

我希望我的端点(订阅者)实现Quartz .Net并安排一个作业,该作业将发送一个指示StartOfBusinessDay(每天)的命令/消息。

我会有一个Saga,从StartOfBusinessDay开始,当saga初始化时,我会请求一个T +的TimeOut(工作日结束时间)。

此佐贺将不断接收消息并将其汇总以供日后处理。

当您的TimeOut发生时,处理所有聚合消息并发布ProcessCompletedEvent以通知任何其他订阅者当天结束批次已完成,然后MarkSaga完成当天。

希望这有帮助。