Ejemplo n.º 1
0
        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);
        }
Ejemplo n.º 2
0
        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;
        }