Мы используем NServiceBus для обработки нескольких типов сообщений. На nservicebus.com говорят, что мы не должны обрабатывать исключения, поскольку NServiceBus позаботится об этом. Теперь наша проблема заключается в следующем: если у нас есть два обработчика сообщений, каждый из которых обрабатывает один и тот же тип сообщения, и в одном из обработчиков есть исключение - можно ли разрешить NServiceBus обрабатывать это исключение (retry и log), но даже если попытки повторяются мы все еще хотим, чтобы другой обработчик был запущен? Или это означает, что мы должны обработать исключение самих себя в обработчике номер один, чтобы быть уверенным, что обработчик номер два всегда запущен?
Спасибо
/ Christian
Пояснение:
Упрощенная версия нашего сценария: наша система обрабатывает счета, когда счет меняет статус, сообщение «InvoiceStatusChanged» отправляется на nservicebus, и должны произойти две вещи: сообщение должно быть отправлено в очередь, а электронное письмо должно быть отправлено человеку, который должен обработать счет следующий. Эти две вещи не зависят друг от друга.
Возможно, мы допустили некоторую ошибку в нашей настройке, потому что если сначала выполняется обработчик, записывающий сообщение в очередь, а обработчик электронной почты прерывается при каждой повторной попытке, то в итоге получается пять сообщений в очереди.
Мы перепроектируем так, чтобы событие изменения статуса отправляло два разных сообщения на шину, и каждый обработчик будет обрабатывать отдельный тип сообщения.
Спасибо
/ Christian