public void Setup()
 {
     _queue = new Mock<IQueue<TestMessage>>();
     _queueConsumerConfig = new Mock<IQueueConsumerConfiguration<TestMessage>>();
     _queueConsumerConfig.Setup(x => x.PollingInterval).Returns(500);
     _queueConsumerConfig.Setup(x => x.BatchSize).Returns(5);
     _errorHandler = new Mock<IErrorHandler<TestMessage>>();
     _messageDispatcher = new Mock<IMessageDispatcher>();
     _queueConsumer = new QueueConsumer<TestMessage>(
         _queue.Object,
         _errorHandler.Object,
         _queueConsumerConfig.Object,
         _messageDispatcher.Object);
 }
示例#2
0
 private static void ProcessMessageAsync(BrokeredMessage message)
 {
     IQueueConsumer consumer = new QueueConsumer();
     consumer.ProcessQueueMessage(message);
 }
示例#3
0
 public EventListener(QueueConsumer <T> queueConsumer)
 {
     _queueConsumer = queueConsumer ?? throw new ArgumentNullException(nameof(queueConsumer));
 }
 private EmailPendingNotifier()
 {
     consumer = QueueConsumer.CreateConsumer("Email", "Mailer", "SendAnEmail");
 }
示例#5
0
        static void Main(string[] args)
        {
            var consumers = new List <QueueConsumer <SampleMessage> >();
            var producer  = new QueueProducer();

            producer.IgnoreHash = true;

            var completeCount = 0;
            var timeoutCount  = 0;
            var sendData      = true;

            for (var i = 0; i < 10; i++)
            {
                var consumer = new QueueConsumer <SampleMessage>("Queue" + i, 10);
                consumers.Add(consumer);

                consumer.Receive((context) =>
                {
                    Thread.Sleep(100);

                    if (!context.Cancellation.IsCancellationRequested)
                    {
                        Console.WriteLine(string.Format("receiver 1, thread {0} -> [{1}]", Task.CurrentId, context.Message.Text));
                    }
                });

                consumer.Receive((context) =>
                {
                    Thread.Sleep(200);

                    if (!context.Cancellation.IsCancellationRequested)
                    {
                        Console.WriteLine(string.Format("receiver 2, thread {0} -> [{1}]", Task.CurrentId, context.Message.Text));
                    }
                });

                consumer.OnComplete((context) =>
                {
                    completeCount++;

                    foreach (var ex in context.Exceptions)
                    {
                        Console.WriteLine("excpetion: [" + ex.Message + "] [" + context.Message.Text + "]");
                    }
                });

                consumer.OnTimeout((context) =>
                {
                    timeoutCount++;
                    Console.WriteLine("timeout: [" + context.Message.Text + "]");
                });

                if (sendData)
                {
                    for (var j = 0; j < 10; j++)
                    {
                        var msg = new SampleMessage
                        {
                            Text = "msg" + i.ToString() + "-" + j.ToString()
                        };

                        producer.Send("Queue" + i, msg);

                        Console.WriteLine(string.Format("send -> [{0}]", msg.Text));
                    }
                }
            }

            while (true)
            {
                var text = Console.ReadLine();

                if (text == "exit")
                {
                    break;
                }
                else if (text == "complete")
                {
                    Console.WriteLine(completeCount);
                    continue;
                }
                else if (text == "timeout")
                {
                    Console.WriteLine(timeoutCount);
                    continue;
                }

                producer.Send("Queue0", new SampleMessage
                {
                    Text = text
                });

                Console.WriteLine(string.Format("send -> [{0}]", text));
            }

            foreach (var consumer in consumers)
            {
                consumer.Dispose();
            }
        }
        public void ConsumeQueue(IRegisteredConsumer registeredConsumer)
        {
            if (!this.QueueConsumers.ContainsKey(registeredConsumer.Queue))
            {
                var queueActivityConsumer = CreateAndSetupQueueConsumer(this.Model, registeredConsumer.Queue);

                QueueConsumer consumer = new QueueConsumer(
                    queueActivityConsumer,
                    registeredConsumer,
                    new ConsumeToken(this.Model.BasicConsume(registeredConsumer.Queue, false, queueActivityConsumer), this.Model)
                    );

                this.QueueConsumers.Add(registeredConsumer.Queue, consumer);
            }
            else
            {
                throw new InvalidOperationException("A consumer cannot be registered to a queue twice.");
            }
        }