public static RabbitMQAdapterReceiver Create(RabbitMQStreamProviderConfiguration configuration, string providerName, SerializationManager serializationManager, QueueId queueId, IRabbitMQDataAdapter dataAdapter, Logger logger) { if (configuration == null) { throw new ArgumentNullException(nameof(configuration)); } if (queueId == null) { throw new ArgumentNullException(nameof(queueId)); } if (dataAdapter == null) { throw new ArgumentNullException(nameof(dataAdapter)); } if (serializationManager == null) { throw new ArgumentNullException(nameof(serializationManager)); } if (logger == null) { throw new ArgumentNullException(nameof(logger)); } var queue = RabbitMQResourceManager.CreateQueueDataManager(providerName, configuration, $"{providerName}_Consumer", logger); return(new RabbitMQAdapterReceiver(configuration, providerName, serializationManager, queueId, queue, dataAdapter, logger)); }
public RabbitMQAdapterReceiver(RabbitMQStreamProviderConfiguration configuration, string providerName, SerializationManager serializationManager, QueueId queueId, RabbitMQMessageQueueDataManager queue, IRabbitMQDataAdapter dataAdapter, Logger logger) { _configuration = configuration; _providerName = providerName; _serializationManager = serializationManager; _queue = queue; _dataAdapter = dataAdapter; Id = queueId; _logger = logger; _pending = new List <PendingDelivery>(); }
public RabbitMQMessageQueueDataManager(RabbitMQStreamProviderConfiguration configuration, string connectionName, Logger logger) { _configuration = configuration; _connectionName = connectionName; _logger = logger; var connectionFactory = configuration.ToConnectionFactory(); _connection = connectionFactory.CreateConnection($"{connectionName}"); _channel = _connection.CreateModel(); _props = GetBasicParameters(); }
public RabbitMQAdapter(TDataAdapter dataAdapter, SerializationManager serializationManager, HashRingBasedStreamQueueMapper streamQueueMapper, RabbitMQStreamProviderConfiguration configuration, string providerName, Logger logger) { _dataAdapter = dataAdapter; _serializationManager = serializationManager; _streamQueueMapper = streamQueueMapper; _configuration = configuration; _logger = logger; Name = providerName; }
public void Init(IProviderConfiguration config, string providerName, Logger logger, IServiceProvider serviceProvider) { if (config == null) { throw new ArgumentNullException(nameof(config)); } _configuration = new RabbitMQStreamProviderConfiguration(config); _logger = logger; _providerName = providerName; _cacheSize = SimpleQueueAdapterCache.ParseSize(config, 4096); _streamQueueMapper = new HashRingBasedStreamQueueMapper(_configuration.NumQueues, providerName); _adapterCache = new SimpleQueueAdapterCache(_cacheSize, logger); if (StreamFailureHandlerFactory == null) { StreamFailureHandlerFactory = qid => Task.FromResult <IStreamFailureHandler>(new NoOpStreamDeliveryFailureHandler(false)); } this.SerializationManager = serviceProvider.GetRequiredService <SerializationManager>(); _adaptorFactory = () => ActivatorUtilities.GetServiceOrCreateInstance <TDataAdapter>(serviceProvider); }
public static RabbitMQMessageQueueDataManager CreateQueueDataManager(string providerName, RabbitMQStreamProviderConfiguration configuration, string connectionName, Logger logger) { var queue = new RabbitMQMessageQueueDataManager(configuration, connectionName, logger); List <RabbitMQMessageQueueDataManager> queues; if (QueueDataManagers.TryGetValue(providerName, out queues)) { queues.Add(queue); } else { queues = new List <RabbitMQMessageQueueDataManager> { queue }; QueueDataManagers.TryAdd(providerName, queues); } return(queue); }