我們有一個ASP.NET MVC網絡應用程序,它允許用戶將消息發佈到網站上。除此之外,用戶還可以在發佈消息時將該消息內容聯合到其他第三方系統。異步發送消息給第三方系統 - 隊列?
目前,這是同步完成的,所以當他們點擊'發佈'按鈕時,我們會將他們的消息保存到數據庫,然後依次通知每個第三方系統。我們需要提高此操作的可伸縮性和持久性,因此我希望以某種方式使操作的通知方面異步。
我能想到下面possiblities
- 保存第三方信息到數據庫表中,並有一定的工作進程讀取表項和發佈到第三方系統。
- 使用某種像nServiceBus或RabbitMQ的一個「正確」的消息隊列(我沒有經驗與其中任一)
有沒有更好的方式來做到這一點?我特別感興趣的是如何通知用戶郵件已正確聯合(因爲它是異步),以及如何處理多個重試失敗,此時發件人應該放棄。
感謝
詹姆斯