public RabbitMqAdapter(RabbitMqStreamProviderOptions options, SerializationManager serializationManager, IStreamQueueMapper mapper, string providerName, Logger logger)
 {
     _serializationManager = serializationManager;
     _mapper = mapper;
     Name    = providerName;
     _rmqConnectorFactory = new RabbitMqOnlineConnectorFactory(options, logger);
     _cacheFillingTimeout = options.CacheFillingTimeout;
 }
示例#2
0
        public void Init(IProviderConfiguration config, string providerName, Logger logger, IServiceProvider serviceProvider)
        {
            if (config == null)
            {
                throw new ArgumentNullException(nameof(config));
            }
            if (logger == null)
            {
                throw new ArgumentNullException(nameof(logger));
            }
            if (string.IsNullOrEmpty(providerName))
            {
                throw new ArgumentNullException(nameof(providerName));
            }

            _options        = new RabbitMqStreamProviderOptions(config);
            _providerName   = providerName;
            _cache          = new ConcurrentQueueAdapterCache(_options.CacheSize);
            _mapper         = new HashRingBasedStreamQueueMapper(_options.NumberOfQueues, _options.QueueNamePrefix);
            _failureHandler = Task.FromResult <IStreamFailureHandler>(new NoOpStreamDeliveryFailureHandler(false));
            _adapter        = new RabbitMqAdapter(_options, serviceProvider.GetRequiredService <SerializationManager>(), _mapper, _providerName, logger);
        }