2015-09-08 3 views
1

В MassTransit, как я могу уведомить пользователей о возникновении ошибки после повторной попытки повторной политики? Могу ли я запускать собственный код, когда сообщения отправляются в очередь ошибок, возможно, в качестве своего рода промежуточного программного обеспечения? Я использую MassTransit 3.0.11 beta с RabbitMQ.MassTransit - код запуска при отправке сообщений в очередь ошибок

ответ

1

Выполняется ли запрос/ответ, когда клиент отправляет запрос, а служба не работает и перемещает запрос в очередь ошибок?

Если это так, вы можете обработать ошибку (которая отправляется обратно запрашивающему при возникновении исключения) как часть запроса/ответа. Посмотрите на:

https://github.com/MassTransit/Sample-RequestResponse

клиент запрос будет автоматически оберните это и сгенерирует исключение, если разломам обслуживания запроса.

Если вы делаете что-то другое, включите фрагмент кода.

+0

Я не использую разговор запроса/ответа. У меня просто есть событие, которое я публикую и потребляю. Пример того, что я делаю, - это [на github] (https://github.com/josephdecock/MassTransitPubSubErrorHandler). Ответ на запрос/ответ действительно может быть правильным в моем случае, но меня также интересует паб/sub case. –

+0

То, что я пытаюсь показать в моем примере, - это издатель и подписчик, где абонент может испытывать временные ошибки. Абонент использует политику повтора (для демонстрационных целей она не очень сильно пытается), которая в конечном итоге отказывается, если она не может выполнить свою работу. Если это произойдет, я хотел бы предпринять какие-то действия, чтобы уведомить внешний мир об этом сбое - возможно, отправьте электронное письмо системным администраторам, возможно, опубликуйте сообщение, чтобы указать, что произошел сбой, - но в целом я думаю, что это будет быть полезными, чтобы иметь возможность использовать крючок, который запускается, когда сообщение переходит в очередь ошибок. –

+0

В MT3 вы можете подключить наблюдателя потребления, который вызывается при возникновении сообщения. Конечно, это за попытку, а не на ходу. Публикация Fault происходит только тогда, когда сообщение перемещено. Вы можете подписаться и использовать это в отдельной очереди для своих целей. –

Смежные вопросы