private IModel CreateConsumerChannel(QueueConsumerAttribute queueConsumer, string routeKey, QueueConsumerMode mode) { IModel result = null; switch (mode) { case QueueConsumerMode.Normal: { var bindConsumer = queueConsumer.Modes.Any(p => p == QueueConsumerMode.Normal); result = CreateConsumerChannel(queueConsumer.QueueName, bindConsumer); } break; case QueueConsumerMode.Retry: { var bindConsumer = queueConsumer.Modes.Any(p => p == QueueConsumerMode.Retry); result = CreateRetryConsumerChannel(queueConsumer.QueueName, routeKey, bindConsumer); } break; case QueueConsumerMode.Fail: { var bindConsumer = queueConsumer.Modes.Any(p => p == QueueConsumerMode.Fail); result = CreateFailConsumerChannel(queueConsumer.QueueName, bindConsumer); } break; } return(result); }
public MessageConsumer( BrokerAttribute brokerAttrib, QueueConsumerAttribute queueAttrib, MessageDispatchInfo dispatchInfo) { Check.NotNull(brokerAttrib, nameof(brokerAttrib)); Check.NotNull(queueAttrib, nameof(queueAttrib)); Check.NotNull(dispatchInfo, nameof(dispatchInfo)); _brokerAttrib = brokerAttrib; _queueAttrib = queueAttrib; _queueName = _queueAttrib.QueueName; _routeKeys = _queueAttrib.RouteKeys ?? new string[] { }; MessageHandlers = new List <MessageHandler>(); DispatchInfo = dispatchInfo; }