Как установить время жизни для сообщений в очереди _error с помощью MassTransit?

Можно ли установить время жизни для сообщений в очереди _error? Или даже пропустить этот механизм отправки сообщений в очередь ошибок, поскольку ошибка уже устранена?
Я использую потребителя и получателя сбоя для обработки ошибок. Мне больше не нужны сообщения в очереди ошибок.


person Ioana    schedule 17.03.2020    source источник


Ответы (1)


Возможно, вы можете создать фильтр, чтобы отбросить ошибку, а затем настроить конвейер ошибок для ее использования.

Сначала создайте фильтр:

    class DiscardExceptionFilter :
        IFilter<ExceptionReceiveContext>
    {
        public async Task Send(ExceptionReceiveContext context, IPipe<ExceptionReceiveContext> next)
        {
            await context.NotifyFaulted(context.Exception).ConfigureAwait(false);

            // not calling next.Send(), to end the pipe here.
        }

        public void Probe(ProbeContext context)
        {
            context.CreateScope("no-move-error");
        }
    }

После создания на конечной точке приема настройте конвейер ошибок для использования фильтра.

configurator.ConfigureError(x => x.UseFilter(new DiscardExceptionFilter()));
person Chris Patterson    schedule 17.03.2020