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); }
private static void ProcessMessageAsync(BrokeredMessage message) { IQueueConsumer consumer = new QueueConsumer(); consumer.ProcessQueueMessage(message); }
public EventListener(QueueConsumer <T> queueConsumer) { _queueConsumer = queueConsumer ?? throw new ArgumentNullException(nameof(queueConsumer)); }
private EmailPendingNotifier() { consumer = QueueConsumer.CreateConsumer("Email", "Mailer", "SendAnEmail"); }
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."); } }