amqp-consume

1 RabbitMQ C Client

amqp-consume

Consume messages from a queue on an AMQP server

                amqp-consume

                    OPTION

                    command

                    args

## Description

`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.

## Options

`-q`

`--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.

`-e`

`--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.

`-r`

`--routing-key`=`routing key`

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

`-d`

`--declare`

- 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.

`-x`

`--exclusive`

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

`-A`

`--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.

`-c`

`--count`=`limit`

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

`-p`

`--prefetch-count`=`limit`

- 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.

## Examples

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

-     $ 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:

-     $ amqp-consume -A -e myexch ./myscript

## See also

librabbitmq-tools

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