amqp-consume(1) Consume messages from a queue on an AMQP server



amqp-consume OPTION command args



amqp-consume consumes messages from a queue on an AMQP server. For each message that arrives, a receiving command is run, with the message body supplied to it on standard input.

amqp-consume can consume from an existing queue, or it can create a new queue. It can optionally bind the queue to an existing exchange.

By default, messages will be consumed with explicit acknowledgements. A message will only be acknowledged if the receiving command exits successfully (i.e. with an exit code of zero). The AMQP ``no ack'' mode (a.k.a. auto-ack mode) can be enable with the -A option.



--queue=queue name
The name of the queue to consume messages from.
If the --queue option is omitted, the AMQP server will assign a unique name to the queue, and that server-assigned name will be dixsplayed on stderr; this case implies that an exclusive queue should be declared.

--exchange=exchange name
Specifies that an exclusive queue should be declared, and bound to the given exchange. The specified exchange should already exist unless the --exchange-type option is used to request the creation of an exchange.

--routing-key=routing key
The routing key for binding. If omitted, an empty routing key is assumed.

Forces an exclusive queue to be declared, even when it otherwise would not be. That is, when a queue name is specified with the --queue option, but no binding to an exchange is requested with the --exchange option. Note: this option is deprecated and may be removed in a future version, use the --exclusive option to explicitly declare an exclusive queue.

Declared queues are non-exclusive by default, this option forces declaration of exclusive queues.

--no-ack=routing key
Enable ``no ack'' mode: The AMQP server will unconditionally acknowledge each message that is delivered, regardless of whether the target command exits successfully or not.

Stop consuming after the given number of messages have been received.

Request the server to only send limit messages at a time.
If any value was passed to --count, the value passed to --prefetch-count should be smaller than that, or otherwise it will be ignored.
If -A/--no-ack is passed, this option has no effect.


Consume messages from an existing queue
``myqueue'', and output the message bodies on standard output via cat:" 10

amqp-publish -q myqueue cat 

Bind a new exclusive queue to an
exchange ``myexch'', and send each message body to the script myscript, automatically acknowledging them on the server:" 10

amqp-consume -A -e myexch ./myscript 


See also


librabbitmq-tools(7) describes connection-related options common to all the RabbitMQ C Client tools.