我有一个控制台应用程序(C#),比如每隔x小时运行一次以获取人员列表的App1,然后按一些标准过滤列表,并创建“清洁”列表。我还有另一个控制台应用程序,比如App2每隔x小时运行一次,以获取App1创建的列表并执行某些操作。我想将App1作为“发布者”,将App2作为“订阅者”。我想将一个记录或整个列表传递给订阅者。 我在NServiceBus网站上所做的所有阅读,通过“消息”完成了通信,并没有看到任何发布者(App1)用实际数据触发订阅者(App2)的例子,“嘿,这里是数据xyz,做你的工作“ 有没有人有使用NSeviceBus和数据驱动触发方法的经验? NServiceBus可以实现吗?
感谢。
答案 0 :(得分:1)
您通常会发布所谓的事件,即过去发生过的事件。听起来我的app1告诉app2做一些命令。命令已发送未发布。
你可以让你的app1做一个总线。发送(新的CleanUpCustomerCommand())到app2。在命令中,您可以传递所需的任何数据。每条消息都是UoW,因此如果您希望清除在同一事务中执行的所有客户,则只传递整个列表。如果不是逐个发送它们。
如果世界其他地方有兴趣知道客户WAS清理app2将bus.Publish(new CustomerCleanedUpEvent())。
NServiceBus中的FullDuplex示例将向您展示如何发送,PubSub示例将演示如何发布。
希望这有帮助!
答案 1 :(得分:1)
我甚至会在这里质疑NServiceBus的必要性。听起来你正在做“数据转储”。如果你只是简单地移动数据并且你不关心商业原因,那么计划任务或“cron”工作在发送和接收方面就可以了。