NServiceBus采用数据驱动方式

时间:2011-03-01 00:40:12

标签: nservicebus

我有一个控制台应用程序(C#),比如每隔x小时运行一次以获取人员列表的App1,然后按一些标准过滤列表,并创建“清洁”列表。我还有另一个控制台应用程序,比如App2每隔x小时运行一次,以获取App1创建的列表并执行某些操作。我想将App1作为“发布者”,将App2作为“订阅者”。我想将一个记录或整个列表传递给订阅者。  我在NServiceBus网站上所做的所有阅读,通过“消息”完成了通信,并没有看到任何发布者(App1)用实际数据触发订阅者(App2)的例子,“嘿,这里是数据xyz,做你的工作“ 有没有人有使用NSeviceBus和数据驱动触发方法的经验? NServiceBus可以实现吗?

感谢。

2 个答案:

答案 0 :(得分:1)

您通常会发布所谓的事件,即过去发生过的事件。听起来我的app1告诉app2做一些命令。命令已发送未发布。

你可以让你的app1做一个总线。发送(新的CleanUpCustomerCommand())到app2。在命令中,您可以传递所需的任何数据。每条消息都是UoW,因此如果您希望清除在同一事务中执行的所有客户,则只传递整个列表。如果不是逐个发送它们。

如果世界其他地方有兴趣知道客户WAS清理app2将bus.Publish(new CustomerCleanedUpEvent())。

NServiceBus中的FullDuplex示例将向您展示如何发送,PubSub示例将演示如何发布。

希望这有帮助!

答案 1 :(得分:1)

我甚至会在这里质疑NServiceBus的必要性。听起来你正在做“数据转储”。如果你只是简单地移动数据并且你不关心商业原因,那么计划任务或“cron”工作在发送和接收方面就可以了。