void StartConsumer(MqConsumer consumer) { var channel = _channelProvider.Provide(consumer.BatchSize); _channelCallbackExceptionLogger.Register(channel, consumer.Queue); _channelMessageReceivingController.Register(channel, consumer.Queue); _mqStatusService.QueueConnected(consumer.Queue); _runConsumers.Add(consumer.Queue, consumer); _logger.Action("Consumer enabled") .AndFactIs("queue", consumer.Queue) .Write(); }
public IDisposable AddConsumer(MqConsumer consumer) { if (_runConsumers.ContainsKey(consumer.Queue)) { throw new InvalidOperationException("The consumer for the same queue already registered"); } _runtimeConsumerRegister.Add(consumer.Queue, consumer); if (_state == MqConsumerHostState.Running) { StartConsumer(consumer); } return(new ConsumerUnregistrar(consumer.Queue, this)); }
public void RegisterConsumer(MqConsumer consumer) { var cp = new ObjectInitialConsumerProvider(consumer); _consumers.Add(cp); }
public ObjectInitialConsumerProvider(MqConsumer consumer) { _consumer = consumer; }