Exemplo n.º 1
0
        public BlockingQueueConsumer(
            IConnectionFactory connectionFactory,
            IMessageHeadersConverter messagePropertiesConverter,
            ActiveObjectCounter <BlockingQueueConsumer> activeObjectCounter,
            AcknowledgeMode acknowledgeMode,
            bool transactional,
            ushort prefetchCount,
            bool defaultRequeueRejected,
            Dictionary <string, object> consumerArgs,
            bool noLocal,
            bool exclusive,
            ILoggerFactory loggerFactory,
            params string[] queues)
        {
            ConnectionFactory       = connectionFactory;
            MessageHeadersConverter = messagePropertiesConverter;
            ActiveObjectCounter     = activeObjectCounter;
            AcknowledgeMode         = acknowledgeMode;
            Transactional           = transactional;
            PrefetchCount           = prefetchCount;
            DefaultRequeueRejected  = defaultRequeueRejected;
            if (consumerArgs != null && consumerArgs.Count > 0)
            {
                foreach (var arg in consumerArgs)
                {
                    ConsumerArgs.Add(arg.Key, arg.Value);
                }
            }

            NoLocal       = noLocal;
            Exclusive     = exclusive;
            Queues        = queues.ToList();
            Queue         = new BlockingCollection <Delivery>(prefetchCount);
            LoggerFactory = loggerFactory;
            Logger        = loggerFactory?.CreateLogger <BlockingQueueConsumer>();
        }
        public static IIdentifiable GetArgumentIdentity(ConsumerArgs key)
        {
            switch (key)
            {
                case ConsumerArgs.TimeDelta:
                    return new Identity(NsArg + key, "Time delta", "Engine increments by this fixed time interval each time step");
                default:
                    break;
            }

            throw new NotImplementedException(key.ToString());
        }