我有一个订单 Web 服务,它具有创建订单的方法。当调用该方法时,一条消息被发送到服务总线并由订单消息处理程序处理。
我必须每天和每月生成一份订单报告。通常我会让订单消息处理程序将订单存储在数据库中,然后有一个从数据库读取并生成报告的计划任务。但我想知道是否有更面向消息的方式来做到这一点?
我想过让订单消息处理程序发布一条消息,各种报告服务(例如每日和每月)可以订阅。消息将在给定队列上累积,直到服务以给定的时间间隔(每天/每月)激活。然后,服务将处理其队列上的消息并生成报告。这是要走的路还是我要走的路?
任何指针将不胜感激。
更新
是否可以(使用 NServiceBus)将消息保存在发布者队列中,然后仅在给定的时间间隔发布它们?还是应该反过来,以便发布者立即发布并安排订阅者的处理?