com.rabbitmq.client
Interface Consumer

All Known Implementing Classes:
DefaultConsumer, QueueingConsumer

public interface Consumer

Interface for application callback objects to receive notifications and messages from a queue by subscription. Most implementations will subclass DefaultConsumer.

The methods of this interface are invoked in a dispatch thread which is separate from the Connection's thread. This allows Consumers to call Channel or Connection methods without causing a deadlock.

The Consumers on a particular Channel are invoked serially on one or more dispatch threads. Consumers should avoid executing long-running code because this will delay dispatch of messages to other Consumers on the same Channel.

See Also:
Channel.basicConsume(String, boolean, String, boolean, boolean, java.util.Map, Consumer), Channel.basicCancel(java.lang.String)

Method Summary
 void handleCancel(java.lang.String consumerTag)
          Called when the consumer is cancelled for reasons other than by a call to Channel.basicCancel(java.lang.String).
 void handleCancelOk(java.lang.String consumerTag)
          Called when the consumer is cancelled by a call to Channel.basicCancel(java.lang.String).
 void handleConsumeOk(java.lang.String consumerTag)
          Called when the consumer is registered by a call to any of the Channel.basicConsume(java.lang.String, com.rabbitmq.client.Consumer) methods.
 void handleDelivery(java.lang.String consumerTag, Envelope envelope, AMQP.BasicProperties properties, byte[] body)
          Called when a basic.deliver is received for this consumer.
 void handleRecoverOk(java.lang.String consumerTag)
          Called when a basic.recover-ok is received in reply to a basic.recover.
 void handleShutdownSignal(java.lang.String consumerTag, ShutdownSignalException sig)
          Called when either the channel or the underlying connection has been shut down.
 

Method Detail

handleConsumeOk

void handleConsumeOk(java.lang.String consumerTag)
Called when the consumer is registered by a call to any of the Channel.basicConsume(java.lang.String, com.rabbitmq.client.Consumer) methods.

Parameters:
consumerTag - the consumer tag associated with the consumer

handleCancelOk

void handleCancelOk(java.lang.String consumerTag)
Called when the consumer is cancelled by a call to Channel.basicCancel(java.lang.String).

Parameters:
consumerTag - the consumer tag associated with the consumer

handleCancel

void handleCancel(java.lang.String consumerTag)
                  throws java.io.IOException
Called when the consumer is cancelled for reasons other than by a call to Channel.basicCancel(java.lang.String). For example, the queue has been deleted. See handleCancelOk(java.lang.String) for notification of consumer cancellation due to Channel.basicCancel(java.lang.String).

Parameters:
consumerTag - the consumer tag associated with the consumer
Throws:
java.io.IOException

handleShutdownSignal

void handleShutdownSignal(java.lang.String consumerTag,
                          ShutdownSignalException sig)
Called when either the channel or the underlying connection has been shut down.

Parameters:
consumerTag - the consumer tag associated with the consumer
sig - a ShutdownSignalException indicating the reason for the shut down

handleRecoverOk

void handleRecoverOk(java.lang.String consumerTag)
Called when a basic.recover-ok is received in reply to a basic.recover. All messages received before this is invoked that haven't been ack'ed will be re-delivered. All messages received afterwards won't be.

Parameters:
consumerTag - the consumer tag associated with the consumer

handleDelivery

void handleDelivery(java.lang.String consumerTag,
                    Envelope envelope,
                    AMQP.BasicProperties properties,
                    byte[] body)
                    throws java.io.IOException
Called when a basic.deliver is received for this consumer.

Parameters:
consumerTag - the consumer tag associated with the consumer
envelope - packaging data for the message
properties - content header data for the message
body - the message body (opaque, client-specific byte array)
Throws:
java.io.IOException - if the consumer encounters an I/O error while processing the message
See Also:
Envelope