Ejemplo n.º 1
0
        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());
        }
Ejemplo n.º 2
0
 public MessageSubscriber(IQueueWrapper queueWrapper, ILogger logger, IConfigurationManager config, IServiceMetrics metrics,
                          IMethodInspectorManager methodInspectorManager, IContainerFacade container)
 {
     _queueWrapper           = queueWrapper;
     _logger                 = logger;
     _metrics                = metrics;
     _methodInspectorManager = methodInspectorManager;
     _container              = container;
 }