2017-07-25 97 views
2

如果消息由於異常而被「重試」,是否將其物理返回到隊列?到一開始?到最後?它是否在隊列中存在的消息之後被重新處理?它是否保存在應用程序內存中?Masstransit狀態機 - 重試機制

我還沒有發現masstransit重試機制在文檔中的任何說明。

請參閱任何解釋它的文檔,謝謝。

回答

2

MassTransit將在相同的消費者傳遞內重試消息 - 重試僅在消費者/傳奇/處理程序傳遞管道上進行。在一個傳奇的情況下,數據庫事務(如果存在)被中止,並且開始一個新的事務 - 包括從數據庫重新讀取saga實例。

該消息未返回到其他工作人員處理的隊列。

如果達到重試策略限制,則該消息將被移動到隊列的_error

+0

如果我不指望以某種順序發送消息,並且當前的saga交付管道無法進展,因爲狀態還沒有達到所需的狀態,或者甚至還沒有創建,您說當前工作人員「卡住」這個消息?使用重試間隔 - 使當前工作人員能夠同時處理其他消息? –

+0

如果您未處於處理消息的狀態,則應使用預定的重新傳送。要麼通過自己安排消息,要麼只是告訴MassTransit使用預定的重新傳遞重新傳遞消息。 –