This document is for Kombu's development version, which can be significantly different from previous releases. Get the stable docs here: 5.0.
虚拟传输基类- kombu.transport.virtual
¶
交通工具¶
- class kombu.transport.virtual.Transport(client, **kwargs)[源代码]¶
虚拟交通工具。
论点:¶
客户端(kombu.Connection):这是其传输的客户端。
- Channel = <class 'kombu.transport.virtual.base.Channel'>¶
- Cycle = <class 'kombu.utils.scheduling.FairCycle'>¶
- polling_interval = 1.0¶
在不成功的民意调查之间睡觉的时间到了。
- default_port = None¶
未指定端口时使用的端口号。
- state¶
渠道¶
- class kombu.transport.virtual.AbstractChannel[源代码]¶
抽象通道接口。
这是一个抽象类,定义了您通常希望在虚拟通道中实现的通道方法。
注:¶
不要直接派生子类,而是继承
Channel
。
- class kombu.transport.virtual.Channel(connection, **kwargs)[源代码]¶
虚拟频道。
论点:¶
- Connection(ConnectionT):此传输实例
频道是的一部分。
- Message = <class 'kombu.transport.virtual.base.Message'>¶
使用的消息类。
- state¶
包含交换和绑定的代理状态。
- do_restore = True¶
用于在通道超出范围时恢复未确认消息的标志。
- exchange_types = {'direct': <class 'kombu.transport.virtual.exchange.DirectExchange'>, 'fanout': <class 'kombu.transport.virtual.exchange.FanoutExchange'>, 'topic': <class 'kombu.transport.virtual.exchange.TopicExchange'>}¶
交换类型和对应类的映射。
- exchange_declare(exchange=None, type='direct', durable=False, auto_delete=False, arguments=None, nowait=False, passive=False)[源代码]¶
申报兑换。
- queue_bind(queue, exchange=None, routing_key='', arguments=None, **kwargs)[源代码]¶
捆绑 queue 至 exchange 使用 routing key 。
- basic_qos(prefetch_size=0, prefetch_count=0, apply_global=False)[源代码]¶
更改此频道的服务质量设置。
注:¶
仅限 prefetch_count 受支持。
- prepare_message(body, priority=None, content_type=None, content_encoding=None, headers=None, properties=None)[源代码]¶
准备消息数据。
- flow(active=True)[源代码]¶
启用/禁用消息流。
- 抛出:
NotImplementedError -- As Flow:不是由基本虚拟实现实现的。
消息¶
- class kombu.transport.virtual.Message(payload, channel=None, **kwargs)[源代码]¶
消息对象。
- exception MessageStateError¶
该消息已被确认。
- add_note()¶
Exception.add_note(Note)--向异常添加注释
- args¶
- with_traceback()¶
Exception.with_traceback(TB)--set self.__traceback__ 去结核病,回到赛尔夫。
- accept¶
- ack(multiple=False)[源代码]¶
确认此消息正在处理中。
这将从队列中删除该消息。
- 抛出:
MessageStateError -- 如果消息已经:已确认/已重新排队/已拒绝。
- property acknowledged¶
如果消息已被确认,则设置为True。
- body¶
- channel¶
- content_encoding¶
- content_type¶
- delivery_info¶
- delivery_tag¶
- errors = None¶
- headers¶
- property payload¶
解码后的消息正文。
- properties¶
- reject(requeue=False)[源代码]¶
拒绝此邮件。
该消息将被服务器丢弃。
- 抛出:
MessageStateError -- 如果消息已经:已确认/已重新排队/已拒绝。
服务质量¶
- class kombu.transport.virtual.QoS(channel, prefetch_count=0)[源代码]¶
服务质量保证。
仅支持 prefetch_count 在这点上。
论点:¶
Channel(Channel):连接通道。PREFETCH_COUNT(Int):初始预取次数,默认为0。
- can_consume_max_estimate()[源代码]¶
返回允许返回的最大消息数。
从代理返回可能允许使用者一次使用的估计消息数。这用于这样的服务,其中批量‘GET MESSAGE’调用比许多单独的‘GET MESSAGE’调用更受欢迎--如SQS。
- 返回:
int
- 返回类型:
greater than zero.
- prefetch_count = 0¶
当前预取计数值
- restore_at_shutdown = True¶
如果禁用,未确认的邮件将不会在关机时恢复。
内存中状态¶
- class kombu.transport.virtual.BrokerState(exchanges=None)[源代码]¶
代理状态保存交换、队列和绑定。
- bindings = None¶
这是实际的绑定注册表,用于存储绑定并在固定时间内测试“in”关系。它的结构如下:
{ (queue, exchange, routing_key): arguments, # ..., }
- exchanges = None¶
- queue_index = None¶
队列索引用于直接(恒定时间)访问某个队列的所有绑定。它的结构如下:
{ queue: { (queue, exchange, routing_key), # ..., }, # ..., }