2011-03-01 60 views
0

我有一個控制檯應用程序(C#),說App1,每運行x小時抓住一個人的列表,然後過濾列表的一些標準,並創建「清潔」列表。我還有另一個控制檯應用程序,比如App2,它每運行x個小時就會抓取App1創建的列表並執行一些操作。我想將App1作爲「發佈者」,將App2作爲「訂閱者」。我想將記錄一次或整個列表傳遞給用戶。 我在NServiceBus網站上所做的所有閱讀都是通過「消息」完成的,並沒有看到任何發佈者(App1)用實際數據觸發訂閱者(App2)的例子,「嘿,這裏是數據xyz,做你的工作」。
有沒有人有使用NSeviceBus與數據驅動觸發方法的經驗?這可能與NServiceBus?NServiceBus與數據驅動的方法

謝謝。

回答

1

你通常會發布所謂的事件,也就是過去發生的事情。聽起來你的app1告訴app2做一些命令。命令未發佈。

你可以讓你的app1做一個bus.Send(新的CleanUpCustomerCommand())到app2。在命令中,你可以傳遞你需要的任何數據。每條消息都是UoW,所以如果要清理在同一事務中執行的所有客戶,只能傳遞整個列表。如果不是一個一個地發送它們。

如果世界其他地方有興趣知道客戶已經清除了app2會bus.Publish(新的CustomerCleanedUpEvent())。

NServiceBus中的FullDuplex示例將向您展示如何發送,PubSub示例將演示如何發佈。

希望這會有所幫助!

1

我甚至會質疑這裏需要NServiceBus。這聽起來像你正在做一個「數據轉儲」。如果您只是簡單地移動數據,並且不關心業務原因,那麼計劃任務或「cron」作業在發送和接收方面都會很好。