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 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; }
public virtual void Start(AMQPAdapter amqpAdapter) { stopConsuming = false; }
public Client() { _adapter = new RabbitMQAdapter(); _adapter.Connect(); }