/
vshmidt
/
masstransit
Обзор
Документация
Войти
/
vshmidt
/
masstransit
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
develop
tests/MassTransit.Benchmark/RequestResponse/RequestConsumer.cs
39 строк
1 KB
Chris Patterson
Added Kafka to benchmark to test throughput/latency.
24 дек 2022, 04:26
24 дек 2022, 04:26
20d61f6
Код
Авторство
О чём код?
namespace MassTransitBenchmark.RequestResponse { using System.Threading; using System.Threading.Tasks; using MassTransit; public class RequestConsumer : IConsumer<RequestMessage> { public static int CurrentConsumerCount; public static int MaxConsumerCount; readonly IReportConsumerMetric _report; public RequestConsumer(IReportConsumerMetric report) { _report = report; } public async Task Consume(ConsumeContext<RequestMessage> context) { var current = Interlocked.Increment(ref CurrentConsumerCount); var maxConsumerCount = MaxConsumerCount; if (current > maxConsumerCount) Interlocked.CompareExchange(ref MaxConsumerCount, current, maxConsumerCount); try { context.Respond(new ResponseMessage(context.Message.CorrelationId)); await _report.Consumed<RequestMessage>(context.Message.CorrelationId).ConfigureAwait(false); } finally { Interlocked.Decrement(ref CurrentConsumerCount); } } } }