Во-первых, «лучшая практика» с Rebus - позволить исключениям выходить из обработчика и позволить Rebus вести регистрацию.Он будет регистрировать каждую неудачную попытку обработки как ПРЕДУПРЕЖДЕНИЕ, а затем он будет регистрировать все перехваченные исключения как AggregateException
как ОШИБКУ при перемещении сообщения в очередь ошибок.
Если вы не включите повторные попытки 2-го уровня:) в этом случае Rebus перейдет ко второму раунду поставок после начальных 5 ПРЕДУПРЕЖДЕНИЙ, отправляя сообщение только как IFailed<TMessage>
.
, если последующие пять попыток доставки также не удаются (например, потому что естьнет обработчика, который реализует IHandleMessages<IFailed<YourMessage>>
), тогда вы получите дополнительные 5 ПРЕДУПРЕЖДЕНИЙ в журнале, за которыми следует ОШИБКА, когда сообщение, наконец, будет перемещено в очередь ошибок.
Надеюсь, это сделает его более понятным:) дайте мне знать, если я что-то объясню более подробно.