This document is for Kombu's development version, which can be significantly different from previous releases. Get the stable docs here: 5.0.
Virtual Transport Base Class - kombu.transport.virtual
¶
Transports¶
- class kombu.transport.virtual.Transport(client, **kwargs)[source]¶
Virtual transport.
- Parameters
client (kombu.Connection) – The client this is a transport for.
- Channel = <class 'kombu.transport.virtual.base.Channel'>¶
- Cycle = <class 'kombu.utils.scheduling.FairCycle'>¶
- polling_interval = 1.0¶
Time to sleep between unsuccessful polls.
- default_port = None¶
port number used when no port is specified.
- state¶
Channel¶
- class kombu.transport.virtual.AbstractChannel[source]¶
Abstract channel interface.
This is an abstract class defining the channel methods you’d usually want to implement in a virtual channel.
Note
Do not subclass directly, but rather inherit from
Channel
.
- class kombu.transport.virtual.Channel(connection, **kwargs)[source]¶
Virtual channel.
- Parameters
connection (ConnectionT) – The transport instance this channel is part of.
- Message = <class 'kombu.transport.virtual.base.Message'>¶
message class used.
- state¶
Broker state containing exchanges and bindings.
- do_restore = True¶
flag to restore unacked messages when channel goes out of scope.
- exchange_types = {'direct': <class 'kombu.transport.virtual.exchange.DirectExchange'>, 'fanout': <class 'kombu.transport.virtual.exchange.FanoutExchange'>, 'topic': <class 'kombu.transport.virtual.exchange.TopicExchange'>}¶
mapping of exchange types and corresponding classes.
- exchange_declare(exchange=None, type='direct', durable=False, auto_delete=False, arguments=None, nowait=False, passive=False)[source]¶
Declare exchange.
- exchange_delete(exchange, if_unused=False, nowait=False)[source]¶
Delete exchange and all its bindings.
- queue_bind(queue, exchange=None, routing_key='', arguments=None, **kwargs)[source]¶
Bind queue to exchange with routing key.
- basic_qos(prefetch_size=0, prefetch_count=0, apply_global=False)[source]¶
Change QoS settings for this channel.
Note
Only prefetch_count is supported.
- prepare_message(body, priority=None, content_type=None, content_encoding=None, headers=None, properties=None)[source]¶
Prepare message data.
Message¶
- class kombu.transport.virtual.Message(payload, channel=None, **kwargs)[source]¶
Message object.
- exception MessageStateError¶
The message has already been acknowledged.
- args¶
- with_traceback()¶
Exception.with_traceback(tb) – set self.__traceback__ to tb and return self.
- accept¶
- 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.
- property acknowledged¶
Set to true if the message has been acknowledged.
- body¶
- channel¶
- content_encoding¶
- content_type¶
- 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.
- delivery_info¶
- delivery_tag¶
- errors = None¶
- headers¶
- property payload¶
The decoded message body.
- properties¶
- 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.
- 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.
Quality Of Service¶
- class kombu.transport.virtual.QoS(channel, prefetch_count=0)[source]¶
Quality of Service guarantees.
Only supports prefetch_count at this point.
- Parameters
channel (ChannelT) – Connection channel.
prefetch_count (int) – Initial prefetch count (defaults to 0).
- can_consume()[source]¶
Return true if the channel can be consumed from.
Used to ensure the client adhers to currently active prefetch limits.
- can_consume_max_estimate()[source]¶
Return the maximum number of messages allowed to be returned.
Returns an estimated number of messages that a consumer may be allowed to consume at once from the broker. This is used for services where bulk ‘get message’ calls are preferred to many individual ‘get message’ calls - like SQS.
- Returns
greater than zero.
- Return type
int
- prefetch_count = 0¶
current prefetch count value
- restore_at_shutdown = True¶
If disabled, unacked messages won’t be restored at shutdown.
In-memory State¶
- class kombu.transport.virtual.BrokerState(exchanges=None)[source]¶
Broker state holds exchanges, queues and bindings.
- bindings = None¶
This is the actual bindings registry, used to store bindings and to test ‘in’ relationships in constant time. It has the following structure:
{ (queue, exchange, routing_key): arguments, # ..., }
- exchanges = None¶
Mapping of exchange name to
kombu.transport.virtual.exchange.ExchangeType
- queue_index = None¶
The queue index is used to access directly (constant time) all the bindings of a certain queue. It has the following structure:
{ queue: { (queue, exchange, routing_key), # ..., }, # ..., }