public RabbitMQService(string connectionString, string hostName, string queueName, string userName, string password, int port, string deadLetterExchangeName) : this(connectionString, hostName, userName, password, port) { _rabbitMQModel = new RabbitMQModel(_model); _deadLetterExchangeName = deadLetterExchangeName; _queueName = queueName ?? throw new ArgumentNullException(nameof(queueName)); Dictionary <string, object> args = new Dictionary <string, object>(); // Create dead letter queue if (!string.IsNullOrEmpty(_deadLetterExchangeName)) { string deadLetterQueueName = string.Format("{0}-poison", _queueName); _model.QueueDeclare(queue: deadLetterQueueName, durable: false, exclusive: false, autoDelete: false, arguments: null); _model.ExchangeDeclare(_deadLetterExchangeName, Constants.DefaultDLXSetting); _model.QueueBind(deadLetterQueueName, _deadLetterExchangeName, Constants.DeadLetterRoutingKeyValue, null); args[Constants.DeadLetterExchangeKey] = _deadLetterExchangeName; args[Constants.DeadLetterRoutingKey] = Constants.DeadLetterRoutingKeyValue; } _model.QueueDeclare(queue: _queueName, durable: false, exclusive: false, autoDelete: false, arguments: args); _batch = _model.CreateBasicPublishBatch(); }
public RabbitMQListener(ITriggeredFunctionExecutor executor, IRabbitMQService service, string queueName, ushort batchNumber, ILogger logger) { _executor = executor; _service = service; _queueName = queueName; _batchNumber = batchNumber; _logger = logger; _rabbitMQModel = _service.RabbitMQModel; }
public RabbitMQService(string connectionString, string hostName, string queueName, string userName, string password, int port) : this(connectionString, hostName, userName, password, port) { _rabbitMQModel = new RabbitMQModel(_model); _queueName = queueName ?? throw new ArgumentNullException(nameof(queueName)); _model.QueueDeclarePassive(_queueName); // Throws exception if queue doesn't exist _batch = _model.CreateBasicPublishBatch(); }
public RabbitMQListener( ITriggeredFunctionExecutor executor, IRabbitMQService service, string queueName, ILogger logger, FunctionDescriptor functionDescriptor, ushort prefetchCount) { _executor = executor; _service = service; _queueName = queueName; _logger = logger; _rabbitMQModel = _service.RabbitMQModel; _functionDescriptor = functionDescriptor ?? throw new ArgumentNullException(nameof(functionDescriptor)); _functionId = functionDescriptor.Id; _scaleMonitorDescriptor = new ScaleMonitorDescriptor($"{_functionId}-RabbitMQTrigger-{_queueName}".ToLower()); _prefetchCount = prefetchCount; }
public RabbitMQService(string connectionString, string hostName, string exchangeName, string routingKey, string userName, string password, int port) : this(connectionString, hostName, userName, password, port) { _rabbitMQModel = new RabbitMQModel(_model); _routingKey = routingKey ?? throw new ArgumentNullException(nameof(routingKey)); _exchangeName = exchangeName ?? throw new ArgumentNullException(nameof(exchangeName)); if (!string.IsNullOrEmpty(_exchangeName)) { _model.ExchangeDeclarePassive(_exchangeName); } else { // Should only declare queue if using default exchange if (!string.IsNullOrEmpty(_routingKey)) { _model.QueueDeclarePassive(_routingKey); } } _batch = _model.CreateBasicPublishBatch(); }