Отправить сообщение при восстановлении NServiceBus

125
11

Есть ли способ отправить сообщение NServiceBus, когда и только тогда, когда все попытки, выполненные с возможностью восстановления, не удались? Короче говоря, я хочу отправить новое сообщение в другую очередь (в то же время он отправляется в очередь ошибок). Я не уверен, что, или как, я могу подключиться к конвейеру, чтобы сделать это.

У меня есть поведение ниже, когда я бросаю конкретное исключение, оно обрабатывает его, отправив событие NServiceBus (минуя повторные попытки), но у меня есть другой вариант использования, когда я хочу отправить это же событие только после неудачных попыток.

class OperationFailedExceptionBehavior : Behavior<IIncomingLogicalMessageContext>
{
public override async Task Invoke(IIncomingLogicalMessageContext context, Func<Task> next)
{
try
{
await next().ConfigureAwait(false);
}
catch (OperationFailedException ex)
{
//since we're catching the exception, retries will no longer occur.
await context.Publish(new OperationFailedEvent(ex));
}
}
}

спросил(а) 2021-01-25T15:28:57+03:00 5 месяцев назад
1
Решение
77

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

Для получения дополнительной информации: https://docs.particular.net/nservicebus/recoverability/subscribing-to-error-notifications

ответил(а) 2021-01-25T15:28:57+03:00 5 месяцев назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема