public RabbitMqWrapper( IDateTimeProvider dateTimeProvider, ILogger logger, IConfigurationManager configurationManager, IRabbitMqConnectionManager connectionManager, IServiceMetrics serviceMetrics) { Logger = logger; _dateTimeProvider = dateTimeProvider; _serviceMetrics = serviceMetrics; QueueName = ServiceInfo.QueueName; // AutoAck is the opposite of AcknowledgeAfterProcessing // AcknowledgeAfterProcessing will ack the message after it's been processed, // while AutoAck (AcknowledgeAfterProcessing=False) will ack the message after it's // been pulled from the queue. _autoAck = !configurationManager.Get <bool>("AcknowledgeAfterProcessing", true); _durable = configurationManager.Get <bool>("QueueIsDurable", true); try { _amazonKinesisStreamName = configurationManager.Get <string>("MessageKinesisStream"); } catch { _amazonKinesisStreamName = null; } try { _dataPumpLambdaName = configurationManager.Get <string>("DataPumpLambdaName"); } catch { _dataPumpLambdaName = null; } if (!string.IsNullOrEmpty(_amazonKinesisStreamName)) { _amazonFirehoseProducer = new AmazonFirehoseProducer(logger, configurationManager); } if (!string.IsNullOrEmpty(_dataPumpLambdaName)) { _lambdaDataPump = new LambdaDataPump.LambdaDataPump(logger, _dataPumpLambdaName); } _maximumConcurrency = configurationManager.Get <ushort>("MaximumConcurrency", 0); _channelCache = new ChannelCache(connectionManager, Logger, QueueConstants.ExchangeName, ExchangeType.Topic, true, () => _serviceMetrics.RecordNewMainChannel()); }
public MessageSubscriber(IQueueWrapper queueWrapper, ILogger logger, IConfigurationManager config, IServiceMetrics metrics, IMethodInspectorManager methodInspectorManager, IContainerFacade container) { _queueWrapper = queueWrapper; _logger = logger; _metrics = metrics; _methodInspectorManager = methodInspectorManager; _container = container; }