【问题标题】:NServiceBus with Data driven approach具有数据驱动方法的 NServiceBus
【发布时间】:2011-03-01 20:16:20
【问题描述】:

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

谢谢。

【问题讨论】:

    标签: nservicebus


    【解决方案1】:

    您通常会发布所谓的事件,也就是过去发生的事情。在我看来,您的 app1 正在告诉 app2 做一些事情,也就是命令。命令已发送未发布。

    您可以让您的 app1 执行 bus.Send(new CleanUpCustomerCommand()) 到 app2。在命令中,您可以传递您需要的任何数据。每条消息都是一个 UoW,因此如果您希望在同一事务中执行所有客户的清理,则仅传递整个列表。如果不一一发送。

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

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

    希望这会有所帮助!

    【讨论】:

      【解决方案2】:

      我什至会质疑这里是否需要 NServiceBus。听起来您正在执行“数据转储”。如果您只是简单地移动数据并且您不关心业务原因,那么计划任务或“cron”作业在发送和接收端都可以正常工作。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-06-20
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多