2014-04-25 42 views
1

我有一個Web.API和Angular應用程序,效果很好..但是有一個問題..該應用程序在一個相當複雜(但速度快)的工作流程中集成了幾個不同的系統,我面臨的挑戰是當我啓動它時,我不知道它什麼時候結束,因此,有時屏幕在異步調用完成時適當更新,有時進程仍在繼續,刷新顯示過時的數據。有沒有辦法知道什麼時候「大家」用masstransit完成一條消息?

我在想,如果MassTransit(PublishRequest除外)中有一種方法可以「監控」特定消息並知道其所有消費者何時完成了它?

我有一些關於偵聽「已完成」消息以反彈回來的想法,但是如果有10或20,000個用戶,這聽起來很嘈雜......並且將所有內容都轉換爲請求,以便我可以獲得響應似乎也同樣浪費..

我所有的耳朵,

感謝

回答

0

所以,你有幾個選項,在郵件列表上我認爲其中有一些有關此討論,在過去也是如此。

  1. 使用信號發生器在發生完整事件時通知UI。有一個RabbitMQ背板,在某些情況下,我聽說這個功能非常棒。
  2. 做請求/響應並等待每個消息的響應
  3. 做請求/響應,但請求傳出完成所有工作,然後在達到正確狀態時作出響應。我從來沒有試圖把它們聯繫在一起,所以可能會有點棘手,但完全可行。
  4. 創建一個將響應狀態消息的Saga,因此您的UI可以通過Request/Response直接ping它以獲取更新。根據您如何備份佐賀的數據,您還可以查詢佐賀的數據存儲以獲取狀態。 NHibernate Saga Repository例如可以讓你打數據庫表來獲得狀態。

可能還有一些其他的選擇,但最初沒有想到這不會是很複雜。如果你想進一步深入研究,我建議加入mailing list,因爲那裏的一些人有建立類似的東西的經驗。我剛剛完成了最後一個。

相關問題