/
vshmidt
/
masstransit
Обзор
Документация
Войти
/
vshmidt
/
masstransit
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
develop
src/MassTransit/Monitoring/Performance/PerformanceCounterReceiveObserver.cs
50 строк
2 KB
denys.kozhevnikov
Cleanup using
25 янв 2023, 22:00
25 янв 2023, 22:00
15c3b8b
Код
Авторство
О чём код?
namespace MassTransit.Monitoring.Performance { using System; using System.Threading.Tasks; /// <summary> /// An observer that updates the performance counters using the bus events /// generated. /// </summary> public class PerformanceCounterReceiveObserver : IReceiveObserver { readonly ICounterFactory _factory; public PerformanceCounterReceiveObserver(ICounterFactory factory) { _factory = factory; } Task IReceiveObserver.PreReceive(ReceiveContext context) { return Task.CompletedTask; } Task IReceiveObserver.PostReceive(ReceiveContext context) { return Task.CompletedTask; } Task IReceiveObserver.PostConsume<T>(ConsumeContext<T> context, TimeSpan duration, string consumerType) { ConsumerPerformanceCounterCache.GetCounter(_factory, consumerType).Consumed(duration); MessagePerformanceCounterCache<T>.Counter(_factory).Consumed(duration); return Task.CompletedTask; } Task IReceiveObserver.ConsumeFault<T>(ConsumeContext<T> context, TimeSpan duration, string consumerType, Exception exception) { ConsumerPerformanceCounterCache.GetCounter(_factory, consumerType).Faulted(); MessagePerformanceCounterCache<T>.Counter(_factory).ConsumeFaulted(duration); return Task.CompletedTask; } Task IReceiveObserver.ReceiveFault(ReceiveContext context, Exception exception) { return Task.CompletedTask; } } }