public RedisMessagesConsumerManager(
            ILogger <RedisMessagesConsumerManager> logger,
            string connectionString,
            RedisMQSettings mqSettings,
            IRedisMessageKeyBuilder keyBuilder)
        {
            ThrowHelper.ThrowIfNull(logger, nameof(logger));
            ThrowHelper.ThrowIfNull(connectionString, nameof(connectionString));
            ThrowHelper.ThrowIfNull(mqSettings, nameof(mqSettings));
            ThrowHelper.ThrowIfNull(keyBuilder, nameof(keyBuilder));

            const int lockReserve = 500;

            _mqSettings = mqSettings;

            _multiplexer = ConnectionMultiplexer.Connect(connectionString);
            _logger      = logger;

            _lockTtl   = TimeSpan.FromMilliseconds(_mqSettings.LookupDelayMilliseconds + lockReserve);
            _lockToken = Guid.NewGuid().ToString();

            _consumer = new RedisMessagesConsumer(
                logger,
                _multiplexer,
                _mqSettings.TasksQueueName,
                _mqSettings.DeadLetterQueue,
                keyBuilder);
        }
Beispiel #2
0
        public RedisMessagesConsumer(
            ILogger logger,
            IConnectionMultiplexer multiplexer,
            string tasksQueue,
            string deadLetterQueue,
            IRedisMessageKeyBuilder keyBuilder)
        {
            _handlers = new Dictionary <string, IRedisMessageHandler>();

            _logger          = logger;
            _multiplexer     = multiplexer;
            _tasksQueue      = tasksQueue;
            _deadLetterQueue = deadLetterQueue;
            _keyBuilder      = keyBuilder;
        }