This document describes the current stable version of Kombu (4.0). For development docs, go here.

Message Objects - kombu.message

Message class.

class kombu.message.Message(body=None, delivery_tag=None, content_type=None, content_encoding=None, delivery_info={}, properties=None, headers=None, postencode=None, accept=None, channel=None, **kwargs)[source]

Base class for received messages.

Keyword Arguments:
 
  • channel (ChannelT) – If message was received, this should be the channel that the message was received on.
  • body (str) – Message body.
  • delivery_mode (bool) – Set custom delivery mode. Defaults to delivery_mode.
  • priority (int) – Message priority, 0 to broker configured max priority, where higher is better.
  • content_type (str) – The messages content_type. If content_type is set, no serialization occurs as it is assumed this is either a binary object, or you’ve done your own serialization. Leave blank if using built-in serialization as our library properly sets content_type.
  • content_encoding (str) – The character set in which this object is encoded. Use “binary” if sending in raw binary objects. Leave blank if using built-in serialization as our library properly sets content_encoding.
  • properties (Dict) – Message properties.
  • headers (Dict) – Message headers.
exception MessageStateError

The message has already been acknowledged.

Message.accept
Message.ack(multiple=False)[source]

Acknowledge this message as being processed.

This will remove the message from the queue.

Raises:MessageStateError – If the message has already been acknowledged/requeued/rejected.
Message.ack_log_error(logger, errors, multiple=False)[source]
Message.acknowledged

Set to true if the message has been acknowledged.

Message.body
Message.channel
Message.content_encoding
Message.content_type
Message.decode()[source]

Deserialize the message body.

Returning the original python structure sent by the publisher.

Note

The return value is memoized, use _decode to force re-evaluation.

Message.delivery_info
Message.delivery_tag
Message.errors = None
Message.headers
Message.payload

The decoded message body.

Message.properties
Message.reject(requeue=False)[source]

Reject this message.

The message will be discarded by the server.

Raises:MessageStateError – If the message has already been acknowledged/requeued/rejected.
Message.reject_log_error(logger, errors, requeue=False)[source]
Message.requeue()[source]

Reject this message and put it back on the queue.

Warning

You must not use this method as a means of selecting messages to process.

Raises:MessageStateError – If the message has already been acknowledged/requeued/rejected.