public RabbitMqBaseConsumer(IRabbitMqConnectionManager connectionManager, ILogger logger, ISerializer <TMessage> serializer, Func <TMessage, CancellationToken, Task> procMessage)
 {
     _connectionManager = connectionManager ?? throw new ArgumentNullException(nameof(connectionManager));
     _logger            = logger ?? throw new ArgumentNullException(nameof(logger));
     _serializer        = serializer;
     _procMessage       = procMessage;
 }
示例#2
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());
        }
示例#3
0
 public ChannelCache(IRabbitMqConnectionManager connectionManager, ILogger logger, string exchange, string type, bool durable, Action incremenetChannelCountMetric)
 {
     _connectionManager = connectionManager;
     _logger            = logger;
     _exchange          = exchange;
     _type    = type;
     _durable = durable;
     _incremenetChannelCountMetric = incremenetChannelCountMetric;
 }
示例#4
0
        public RabbitMqBaseProducer(IRabbitMqConnectionManager connectionManager, ILogger logger, ISerializer <TMessage> serializer)
        {
            _connectionManager = connectionManager;
            _logger            = logger;
            _serializer        = serializer;

            var(QueueName, Delay) = ModelBuilder.GetQueueName <TMessage>();
            _queueName            = QueueName;
            _messageDelay         = Delay;
        }
        public RabbitBackplane(
            ILogger logger,
            IRabbitMqConnectionManager rabbitMqConnectionManager,
            IBackplaneMessageHandler backplaneMessageHandler,
            IBackplaneMetrics backplaneMetrics)
        {
            exchangeName             = $"{ServiceInfo.Name}{ServiceInfo.MajorVersion}";
            _backplaneMessageHandler = backplaneMessageHandler;

            _channelCache = new ChannelCache(rabbitMqConnectionManager, logger, exchangeName, ExchangeType.Fanout, false, backplaneMetrics.RecordNewBackplaneChannel);
        }
 public ConsumerPipeContext(
     IRabbitMqConnectionManager connectionManager,
     IModel chanel,
     BasicDeliverEventArgs basicDeliverEventArgs,
     ProcessorMessageDelegate <T> messageProcessor,
     IActiveMessageProcessorCanceller activeMessageProcessorCanceller
     )
 {
     ConnectionManager = connectionManager;
     RabbitMqMessage   = basicDeliverEventArgs;
     MessageProcessor  = messageProcessor;
     ActiveMessageProcessorCanceller = activeMessageProcessorCanceller;
     Chanel = chanel;
 }
示例#7
0
 public RabbitMqServiceOptionsBuilder WithConnectionManager(IRabbitMqConnectionManager connectionManager)
 {
     _connectionManager = connectionManager;
     return(this);
 }
 public RabbitMqServiceClientOptions(
     IRabbitMqConnectionManager rabbitMqConnectionManager
     )
 {
     RabbitMqConnectionManager = rabbitMqConnectionManager;
 }
 public ConnectionClientPipe(IRabbitMqConnectionManager connectionManager, ChannelType channelType)
 {
     _connectionManager = connectionManager;
     _channelType       = channelType;
 }
示例#10
0
 public TestRabbitMqConsumer(IRabbitMqConnectionManager connectionManager, ILogger logger, ISerializer <TestDataContract> serializer,
                             Func <TestDataContract, CancellationToken, Task> procMessage)
     : base(connectionManager, logger, serializer, procMessage)
 {
 }
示例#11
0
 public RabbitMqBaseDistributedProducer(IRabbitMqConnectionManager connectionManager, ILogger logger, ISerializer <TMessage> serializer, DistributedProducerConfig config)
     : base(connectionManager, logger, serializer)
 {
     _logger = logger ?? throw new ArgumentNullException(nameof(logger));
     _config = config ?? throw new ArgumentNullException(nameof(config));
 }
 public RabbitMqHealthCheck(ILogger logger, IRabbitMqConnectionManager connectionManager)
 {
     _logger            = logger;
     _connectionManager = connectionManager;
 }