/
vshmidt
/
masstransit
Обзор
Документация
Войти
/
vshmidt
/
masstransit
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
develop
src/MassTransit/Middleware/DeadLetterFilter.cs
42 строки
1 KB
Chris Patterson
Fixed #4867 - Changed Configure Topology Filter One Time Setup to use entirely new approach
10 янв 2024, 23:49
10 янв 2024, 23:49
8aa9e1c
Код
Авторство
О чём код?
namespace MassTransit.Middleware { using System.Diagnostics; using System.Threading.Tasks; using Transports; /// <summary> /// If a message was neither delivered to a consumer nor caused a fault (which was notified already) /// then this filter will send the message to the dead letter pipe. /// </summary> public class DeadLetterFilter : IFilter<ReceiveContext> { readonly IPipe<ReceiveContext> _deadLetterPipe; public DeadLetterFilter(IPipe<ReceiveContext> deadLetterPipe) { _deadLetterPipe = deadLetterPipe; } void IProbeSite.Probe(ProbeContext context) { var scope = context.CreateFilterScope("deadLetter"); _deadLetterPipe.Probe(scope); } [DebuggerNonUserCode] async Task IFilter<ReceiveContext>.Send(ReceiveContext context, IPipe<ReceiveContext> next) { await next.Send(context).ConfigureAwait(false); if (context.IsDelivered || context.IsFaulted) return; await _deadLetterPipe.Send(context).ConfigureAwait(false); context.LogSkipped(); } } }