/
vshmidt
/
masstransit
Обзор
Документация
Войти
/
vshmidt
/
masstransit
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
develop
src/MassTransit/Middleware/ConsumerSplitFilter.cs
41 строка
1 KB
Chris Patterson
Massive file cleanup
27 мар 2024, 02:43
27 мар 2024, 02:43
2ac69e8
Код
Авторство
О чём код?
namespace MassTransit.Middleware { using System.Diagnostics; using System.Threading.Tasks; /// <summary> /// Splits a context item off the pipe and carries it out-of-band to be merged /// once the next filter has completed /// </summary> /// <typeparam name="TConsumer"></typeparam> /// <typeparam name="TMessage"></typeparam> public class ConsumerSplitFilter<TConsumer, TMessage> : IFilter<ConsumerConsumeContext<TConsumer, TMessage>> where TMessage : class where TConsumer : class { readonly IFilter<ConsumerConsumeContext<TConsumer>> _next; public ConsumerSplitFilter(IFilter<ConsumerConsumeContext<TConsumer>> next) { _next = next; } void IProbeSite.Probe(ProbeContext context) { var scope = context.CreateFilterScope("split"); scope.Set(new { ConsumerType = TypeCache<TConsumer>.ShortName }); _next.Probe(scope); } [DebuggerNonUserCode] public Task Send(ConsumerConsumeContext<TConsumer, TMessage> context, IPipe<ConsumerConsumeContext<TConsumer, TMessage>> next) { var mergePipe = new ConsumerMergePipe<TConsumer, TMessage>(next); return _next.Send(context, mergePipe); } } }