/// <inheritdoc cref="IStartable.Start"/> public void Start() { var rabbitMqSubscriptionSettings = RabbitMqSubscriptionSettings.ForSubscriber( _connectionString, _exchangeName, _queueName); if (_isDurable) { rabbitMqSubscriptionSettings = rabbitMqSubscriptionSettings.MakeDurable(); } _subscriber = new RabbitMqSubscriber <TMessage>( _logFactory, rabbitMqSubscriptionSettings, new ResilientErrorHandlingStrategy( _logFactory, rabbitMqSubscriptionSettings, TimeSpan.FromSeconds(10), next: new DeadQueueErrorHandlingStrategy(_logFactory, rabbitMqSubscriptionSettings))) .SetMessageDeserializer(new JsonMessageDeserializer <TMessage>()) .SetPrefetchCount(_prefetchCount) .Subscribe(ProcessMessageAsync) .CreateDefaultBinding() .Start(); }
/// <inheritdoc cref="IStopable.Stop"/> public void Stop() { if (_subscriber != null) { _subscriber.Stop(); _subscriber.Dispose(); _subscriber = null; } }
/// <inheritdoc cref="IStartStop.Stop"/> public void Stop() { var subscriber = _subscriber; if (_subscriber == null) { return; } _subscriber = null; subscriber.Stop(); subscriber.Dispose(); }
/// <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(); }