This document is for Kombu's development version, which can be significantly different from previous releases. Get the stable docs here: 5.0.

Pidbox- kombu.pidbox

通用进程邮箱。

引言

创建应用程序邮箱

>>> mailbox = pidbox.Mailbox('celerybeat', type='direct')

>>> @mailbox.handler
>>> def reload_schedule(state, **kwargs):
...     state['beat'].reload_schedule()

>>> @mailbox.handler
>>> def connection_info(state, **kwargs):
...     return {'connection': state['connection'].info()}

示例节点

>>> connection = kombu.Connection()
>>> state = {'beat': beat,
             'connection': connection}
>>> consumer = mailbox(connection).Node(hostname).listen()
>>> try:
...     while True:
...         connection.drain_events(timeout=1)
... finally:
...     consumer.cancel()

示例客户端

>>> mailbox.cast('reload_schedule')   # cast is async.
>>> info = celerybeat.call('connection_info', timeout=1)

邮箱

class kombu.pidbox.Mailbox(namespace, type='direct', connection=None, clock=None, accept=None, serializer=None, producer_pool=None, queue_ttl=None, queue_expires=None, reply_queue_ttl=None, reply_queue_expires=10.0)[源代码]

进程邮箱。

namespace = None

应用程序的名称。

connection = None

连接(如果绑定)。

type = 'direct'

交换类型(通常为直接交换,或用于广播的扇形传出)。

exchange = None

邮箱交换(由构造函数初始化)。

reply_exchange = None

要向其发送回复的Exchange。

Node(hostname=None, state=None, channel=None, handlers=None)[源代码]
call(destination, command, kwargs=None, timeout=None, callback=None, channel=None)[源代码]
cast(destination, command, kwargs=None)[源代码]
abcast(command, kwargs=None)[源代码]
multi_call(command, kwargs=None, timeout=1, limit=None, callback=None, channel=None)[源代码]
get_reply_queue()[源代码]
get_queue(hostname)[源代码]

节点

class kombu.pidbox.Node(hostname, state=None, channel=None, handlers=None, mailbox=None)[源代码]

邮箱节点。

hostname = None

节点的主机名。

mailbox = None

这个 Mailbox 这是的节点。

handlers = None

方法名称/处理程序的映射。

state = None

当前上下文(传递给处理程序)

channel = None

当前频道。

Consumer(channel=None, no_ack=True, accept=None, **options)[源代码]
handler(fun)[源代码]
listen(channel=None, callback=None)[源代码]
dispatch(method, arguments=None, reply_to=None, ticket=None, **kwargs)[源代码]
dispatch_from_message(body, message=None)
handle_call(method, arguments)[源代码]
handle_cast(method, arguments)[源代码]
handle(method, arguments=None)[源代码]
handle_message(body, message=None)[源代码]
reply(data, exchange, routing_key, ticket, **kwargs)[源代码]