public RabbitMQMessageQueue(IOptions <RabbitMQOptions> options, ILoggerFactory loggerFactory)
 {
     _logger     = loggerFactory.CreateLogger <RabbitMQMessageQueue>();
     _options    = options.Value;
     _connection = new PersistentConnection(CreateConnectionFactory(),
                                            loggerFactory.CreateLogger <PersistentConnection>(), _options.RetryCount);
     CreateConsumerChannel();
 }
示例#2
0
        public RabbitMQMessageQueue(IOptions <RabbitMQOptions> options, ILoggerFactory loggerFactory)
        {
            _logger     = loggerFactory.CreateLogger <RabbitMQMessageQueue>();
            _options    = options.Value;
            _connection = new PersistentConnection(CreateConnectionFactory(),
                                                   loggerFactory.CreateLogger <PersistentConnection>(), _options.RetryCount);

            if (!_connection.IsConnected)
            {
                _connection.TryConnect();
            }

            _logger.LogTrace("Creating RabbitMQ publish channel");

            _publishChannel = _connection.CreateModel();
            _publishChannel.ExchangeDeclare(exchange: _options.Exchange, type: "direct", durable: true);
        }