/
vshmidt
/
masstransit
Обзор
Документация
Войти
/
vshmidt
/
masstransit
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
develop
src/MassTransit/Middleware/DelayedMessageRedeliveryFilter.cs
36 строк
1 KB
Chris Patterson
Changed consume pipe so that simple ConsumeContext filters are PrePipe configured prior to the dispatch filter
26 янв 2022, 01:31
26 янв 2022, 01:31
6dc0f0b
Код
Авторство
О чём код?
namespace MassTransit.Middleware { using System.Diagnostics; using System.Threading.Tasks; /// <summary> /// Uses a delayed exchange in ActiveMQ to delay a message retry /// </summary> /// <typeparam name="TMessage"></typeparam> public class DelayedMessageRedeliveryFilter<TMessage> : IFilter<ConsumeContext<TMessage>> where TMessage : class { readonly RedeliveryOptions _options; public DelayedMessageRedeliveryFilter(RedeliveryOptions options) { _options = options; } public void Probe(ProbeContext context) { var scope = context.CreateFilterScope("delayedMessageRedelivery"); scope.Add("messageType", TypeCache<TMessage>.ShortName); } [DebuggerNonUserCode] public Task Send(ConsumeContext<TMessage> context, IPipe<ConsumeContext<TMessage>> next) { context.GetOrAddPayload<MessageRedeliveryContext>(() => new DelayedMessageRedeliveryContext<TMessage>(context, _options)); return next.Send(context); } } }