2017-04-15 64 views
0

我搜索如何管理服務總線天青的消費者中的異常,如何警告發件人,我搜索像佐賀的模式,但我不知道是否這是正確的目的。 當我閱讀示例代碼時,在主要情況下,如果消費者中存在異常,則發件人不警惕。但是在生產環境中如何管理這個以避免手動解決。如何管理髮送消息時的錯誤在消費者服務總線上有異常

我有一個送貨服務,請求在其他服務上付款,當請求開始時,送貨服務上的一個標誌設置爲「PaymentRequested」,但如果在付款服務中有一個執行選項,該標誌仍​​然是「 PaymentRequested「永遠。如何避免這一點。

回答

0

正常情況下,消費者應該發回成功的事件消息,如果它成功地處理了命令消息,否則它應該發送失敗事件消息。這就是發件人如何知道操作是否成功。

同時,發件人應該定義一個超時來接收這些事件消息。如果消費者因異常發送而崩潰,則在超時期限內不會收到通知。這可能意味着操作失敗(或任何其他原因),並且發件人可能會考慮再次發送命令(命令應該是冪等的以便安全重試)或者由於超時而報告失敗。

+0

你有簡單的示例代碼嗎? – ArDumez

+0

我還沒有用NServiceBus來實現它。而是EventStore和Akka.NET。但它是一般信息系統的基本方法。 –

+0

我也知道,烏迪建議模型命令,使他們不會失敗:) –