Esempio n. 1
0
 /// <inheritdoc cref="IStartable.Start"/>
 public void Start()
 {
     _subscriber = new RabbitMqSubscriber <TMessage>(
         _loggerFactory.CreateLogger <RabbitMqSubscriber <TMessage> >(),
         _settings)
                   .UseMiddleware(
         new DeadQueueMiddleware <TMessage>(_loggerFactory.CreateLogger <DeadQueueMiddleware <TMessage> >()))
                   .UseMiddleware(
         new ResilientErrorHandlingMiddleware <TMessage>(
             _loggerFactory.CreateLogger <ResilientErrorHandlingMiddleware <TMessage> >(),
             TimeSpan.FromSeconds(10)))
                   .SetMessageDeserializer(new JsonMessageDeserializer <TMessage>())
                   .SetPrefetchCount(_prefetchCount)
                   .Subscribe(ProcessMessageAsync)
                   .CreateDefaultBinding();
     if (_sendTelemetry)
     {
         _subscriber = _subscriber.UseMiddleware(new TelemetryMiddleware <TMessage>());
     }
     _subscriber.Start();
 }