public RabbitConsumer(IRabbitFactoryConnection connection, string serviceName, string topicName, Func <GateContext, CancellationToken, Task> messageHandler, Action abortedHandler, bool autoDelete, int maxConcurrentMessages, RabbitOptions options, ILogger logger) { ServiceName = string.IsNullOrEmpty(serviceName) ? throw new ArgumentException("ServiceName null or empty", nameof(serviceName)) : serviceName; TopicName = string.IsNullOrEmpty(topicName) ? throw new ArgumentException("TopicName null or empty", nameof(topicName)) : topicName; AutoDelete = autoDelete; MaxConcurrentMessages = maxConcurrentMessages; _messageHandler = messageHandler ?? throw new ArgumentNullException(nameof(messageHandler)); if (abortedHandler == null) { throw new ArgumentNullException(nameof(abortedHandler)); } if (options == null) { throw new ArgumentNullException(nameof(options)); } _logger = logger ?? throw new ArgumentNullException(nameof(logger)); var queueName = RabbitMapper.GetQueueName(ServiceName, TopicName); var routingKey = RabbitMapper.GetRoutingKey(TopicName); _consumer = new RabbitInternalConsumer(connection, options.Exchange, queueName, routingKey, AutoDelete, (ushort)MaxConcurrentMessages, HandleMessage, abortedHandler); }
public RabbitInternalConsumer(IRabbitFactoryConnection connection, string exchange, string queueName, string routingKey, bool autoDelete, ushort maxConcurrentMessages, Func <BasicDeliverEventArgs, Task> messageHandler, Action abortedHandler) { _connection = connection ?? throw new ArgumentNullException(nameof(connection)); _exchange = exchange; _queueName = queueName; _routingKey = routingKey; _autoDelete = autoDelete; _maxConcurrentMessages = maxConcurrentMessages; _messageHandler = messageHandler; _abortedHandler = abortedHandler; }
public RabbitFactory(IRabbitFactoryConnection connection, IOptions <RabbitOptions> options, ILogger <RabbitFactory> logger) { _connection = connection ?? throw new ArgumentNullException(nameof(connection)); _options = options.Value; _logger = logger; }