public RabbitMqSubscriber(IServiceProvider serviceProvider) { _serviceProvider = serviceProvider; _connection = _serviceProvider.GetRequiredService <IConnection>(); _channel = _connection.CreateModel(); _publisher = _serviceProvider.GetRequiredService <IBusPublisher>(); _rabbitMqSerializer = _serviceProvider.GetRequiredService <IRabbitMqSerializer>(); _conventionsProvider = _serviceProvider.GetRequiredService <IConventionsProvider>(); _contextProvider = _serviceProvider.GetRequiredService <IContextProvider>(); _logger = _serviceProvider.GetService <ILogger <RabbitMqSubscriber> >(); _exceptionToMessageMapper = _serviceProvider.GetService <IExceptionToMessageMapper>() ?? new EmptyExceptionToMessageMapper(); _pluginsExecutor = _serviceProvider.GetService <IRabbitMqPluginsExecutor>(); _options = _serviceProvider.GetService <RabbitMqOptions>(); _loggerEnabled = _options.Logger?.Enabled ?? false; _retries = _options.Retries >= 0 ? _options.Retries : 3; _retryInterval = _options.RetryInterval > 0 ? _options.RetryInterval : 2; }
public RabbitMqSubscriber(IServiceProvider serviceProvider) { _serviceProvider = serviceProvider; _channel = _serviceProvider.GetRequiredService <IConnection>().CreateModel(); _publisher = _serviceProvider.GetRequiredService <IBusPublisher>(); _rabbitMqSerializer = _serviceProvider.GetRequiredService <IRabbitMqSerializer>(); _conventionsProvider = _serviceProvider.GetRequiredService <IConventionsProvider>(); _contextProvider = _serviceProvider.GetRequiredService <IContextProvider>(); _logger = _serviceProvider.GetService <ILogger <RabbitMqSubscriber> >(); _options = _serviceProvider.GetService <RabbitMqOptions>(); _pluginsExecutor = _serviceProvider.GetService <IRabbitMqPluginsExecutor>(); _exceptionToMessageMapper = _serviceProvider.GetService <IExceptionToMessageMapper>(); _retries = _options.Retries >= 0 ? _options.Retries : 3; _retryInterval = _options.RetryInterval > 0 ? _options.RetryInterval : 2; _qosOptions = _options?.Qos ?? new RabbitMqOptions.QosOptions(); if (_qosOptions.PrefetchCount < 1) { _qosOptions.PrefetchCount = 1; } }