AMQP.Confirm (amqp v3.0.0) View Source

Functions that work with publisher confirms (RabbitMQ extension to AMQP 0.9.1).

Link to this section Summary

Functions

On channel with confirm activated, return the next message sequence number.

Register a handler for confirms on channel.

Activates publishing confirmations on the channel.

Remove the return handler.

Wait until all messages published since the last call have been either ack'd or nack'd by the broker.

Wait until all messages published since the last call have been either ack'd or nack'd by the broker, or until timeout elapses.

Wait until all messages published since the last call have been either ack'd or nack'd by the broker, or until timeout elapses.

Link to this section Functions

Link to this function

next_publish_seqno(channel)

View Source

Specs

next_publish_seqno(AMQP.Channel.t()) :: non_neg_integer()

On channel with confirm activated, return the next message sequence number.

To use in combination with register_handler/2

Link to this function

register_handler(chan, handler_pid)

View Source

Specs

register_handler(AMQP.Channel.t(), pid()) :: :ok

Register a handler for confirms on channel.

The handler will receive either:

  • {:basic_ack, seqno, multiple}

  • {:basic_nack, seqno, multiple}

The seqno (delivery_tag) is an integer, the sequence number of the message.

multiple is a boolean, when true means multiple messages confirm, up to seqno.

See https://www.rabbitmq.com/confirms.html

Specs

select(AMQP.Channel.t()) :: :ok | AMQP.Basic.error()

Activates publishing confirmations on the channel.

Link to this function

unregister_handler(channel)

View Source

Specs

unregister_handler(AMQP.Channel.t()) :: :ok

Remove the return handler.

It does nothing if there is no such handler.

Link to this function

wait_for_confirms(channel)

View Source

Specs

wait_for_confirms(AMQP.Channel.t()) :: boolean() | :timeout

Wait until all messages published since the last call have been either ack'd or nack'd by the broker.

Link to this function

wait_for_confirms(channel, timeout)

View Source

Specs

wait_for_confirms(AMQP.Channel.t(), non_neg_integer()) :: boolean() | :timeout

Wait until all messages published since the last call have been either ack'd or nack'd by the broker, or until timeout elapses.

Link to this function

wait_for_confirms_or_die(channel)

View Source

Specs

wait_for_confirms_or_die(AMQP.Channel.t()) :: true

Wait until all messages published since the last call have been either ack'd or nack'd by the broker, or until timeout elapses.

If any of the messages were nack'd, the calling process dies.

Link to this function

wait_for_confirms_or_die(channel, timeout)

View Source

Specs

wait_for_confirms_or_die(AMQP.Channel.t(), non_neg_integer()) :: true