Beispiel #1
0
        protected void Start(AMQPAdapter amqpAdapter, bool catchAllExceptions)
        {
            base.Start(amqpAdapter);
            try {
                var connection = (IConnection)amqpAdapter.GetConnection();

                using (var channel = connection.CreateModel()) {
                    if (createQueue)
                    {
                        channel.QueueDeclare(queueName, true, false, false, queueArgs);
                    }
                    channel.BasicQos(0, prefetchCount, false);

                    var consumer = new QueueingBasicConsumer(channel);
                    channel.BasicConsume(queueName, noAck, consumer);

                    while (!stopConsuming)
                    {
                        try {
                            BasicDeliverEventArgs basicDeliverEventArgs;
                            var messageIsAvailable = consumer.Queue.Dequeue(timeout, out basicDeliverEventArgs);

                            if (!messageIsAvailable)
                            {
                                continue;
                            }
                            var payload = basicDeliverEventArgs.Body;

                            var message = Encoding.UTF8.GetString(payload);
                            OnMessageReceived(new MessageReceivedEventArgs {
                                Message   = message,
                                EventArgs = basicDeliverEventArgs
                            });

                            if (implicitAck && !noAck)
                            {
                                channel.BasicAck(basicDeliverEventArgs.DeliveryTag, false);
                            }
                        }
                        catch (Exception exception) {
                            OnMessageReceived(new MessageReceivedEventArgs {
                                Exception = new AMQPConsumerProcessingException(exception)
                            });
                            if (!catchAllExceptions)
                            {
                                Stop();
                            }
                        }
                    }
                }
            }
            catch (Exception exception) {
                OnMessageReceived(new MessageReceivedEventArgs {
                    Exception = new AMQPConsumerInitialisationException(exception)
                });
            }
        }
        protected void Start(AMQPAdapter amqpAdapter, bool catchAllExceptions) {
            base.Start(amqpAdapter);
            try {
                var connection = (IConnection) amqpAdapter.GetConnection();

                using (var channel = connection.CreateModel()) {
                    if (createQueue) channel.QueueDeclare(queueName, true, false, false, queueArgs);
                    channel.BasicQos(0, prefetchCount, false);

                    var consumer = new QueueingBasicConsumer(channel);
                    channel.BasicConsume(queueName, noAck, consumer);

                    while (!stopConsuming) {
                        try {
                            BasicDeliverEventArgs basicDeliverEventArgs;
                            var messageIsAvailable = consumer.Queue.Dequeue(timeout, out basicDeliverEventArgs);

                            if (!messageIsAvailable) continue;
                            var payload = basicDeliverEventArgs.Body;

                            var message = Encoding.UTF8.GetString(payload);
                            OnMessageReceived(new MessageReceivedEventArgs {
                                Message = message,
                                EventArgs = basicDeliverEventArgs
                            });

                            if (implicitAck && !noAck) channel.BasicAck(basicDeliverEventArgs.DeliveryTag, false);
                        }
                        catch (Exception exception) {
                            OnMessageReceived(new MessageReceivedEventArgs {
                                Exception = new AMQPConsumerProcessingException(exception)
                            });
                            if (!catchAllExceptions) Stop();
                        }
                    }
                }
            }
            catch (Exception exception) {
                OnMessageReceived(new MessageReceivedEventArgs {
                    Exception = new AMQPConsumerInitialisationException(exception)
                });
            }
        }
 public override void Start(AMQPAdapter amqpAdapter) {
     base.Start(amqpAdapter);
     Start(amqpAdapter, true);
 }
 public override void Start(AMQPAdapter amqpAdapter)
 {
     base.Start(amqpAdapter);
     Start(amqpAdapter, true);
 }
 public RabbitMQConsumerNotifier(AMQPAdapter amqpAdapter, string exchangeName) : base(amqpAdapter, exchangeName) {}
 public RabbitMQConsumerNotifier(AMQPAdapter amqpAdapter, string exchangeName) : base(amqpAdapter, exchangeName)
 {
 }
 protected AMQPConsumerNotifier(AMQPAdapter amqpAdapter, string exchangeName)
 {
     this.amqpAdapter  = amqpAdapter;
     this.exchangeName = exchangeName;
 }
Beispiel #8
0
 public virtual void Start(AMQPAdapter amqpAdapter)
 {
     stopConsuming = false;
 }
 protected AMQPConsumerNotifier(AMQPAdapter amqpAdapter, string exchangeName) {
     this.amqpAdapter = amqpAdapter;
     this.exchangeName = exchangeName;
 }
Beispiel #10
0
 public virtual void Start(AMQPAdapter amqpAdapter) {
     stopConsuming = false;
 }
Beispiel #11
0
 public Client() {
     _adapter = new RabbitMQAdapter();
     _adapter.Connect();
 }