Rabbit.Message (Rabbit v0.11.0) View Source

A message consumed by a Rabbit.Consumer.

After starting a consumer, any message passed to the Rabbit.Consumer.handle_message/1 callback will be wrapped in a messsage struct. The struct has the following fields:

  • :consumer - The PID of the consumer process.
  • :module - The module of the consumer process.
  • :channel - The AMQP.Channel being used by the consumer.
  • :payload - The raw payload of the message.
  • :decoded_payload - If the message has a content type - this will be the payload decoded using the applicable serializer.
  • :meta - The metadata sent when publishing or set by the broker.
  • :error_reason - The reason for any error that occurs during the message handling callback.
  • :error_stack - The stacktrace that might accompany the error.

Link to this section Summary

Functions

Awknowledges a message.

Negative awknowledges a message.

Creates a new message struct.

Rejects a message.

Link to this section Types

Specs

t() :: %Rabbit.Message{
  channel: AMQP.Channel.t(),
  consumer: pid(),
  decoded_payload: any(),
  error_reason: any(),
  error_stack: nil | list(),
  meta: map(),
  module: module(),
  payload: binary()
}

Link to this section Functions

Link to this function

ack(message, opts \\ [])

View Source

Specs

ack(t(), keyword()) :: :ok | {:error, :blocked | :closing}

Awknowledges a message.

Options

  • :multiple - If true, all messages up to the one specified by its delivery_tag are considered acknowledged by the server.
Link to this function

nack(message, opts \\ [])

View Source

Specs

nack(t(), keyword()) :: :ok | {:error, :blocked | :closing}

Negative awknowledges a message.

Options

  • :multiple - If true, all messages up to the one specified by it delivery_tag are considered acknowledged by the server.
  • :requeue - If true, the message will be returned to the queue and redelivered to the next available consumer.
Link to this function

new(consumer, module, channel, payload, meta)

View Source

Specs

new(Rabbit.Consumer.t(), module(), AMQP.Channel.t(), any(), map()) :: t()

Creates a new message struct.

Link to this function

reject(message, opts \\ [])

View Source

Specs

reject(t(), keyword()) :: :ok | {:error, :blocked | :closing}

Rejects a message.

Options

  • :requeue - If true, the message will be returned to the queue and redelivered to the next available consumer.