跳转到主要内容

为Python和zope提供AMQP广播。

项目描述

概述

zamqp旨在通过AMQP在Python实例之间广播消息并触发事件。

它基于amqplib,提供消费者和生成器实现,并提供远程触发zope事件的功能。

辅助类

为AMQP连接创建属性。

>>> from zamqp import AMQPProps
>>> props = AMQPProps(host='localhost',
...                   user='guest',
...                   password='guest',
...                   ssl=False,
...                   exchange='zamqp.broadcast.fanout',
...                   type='fanout',
...                   realm='/data')

手动创建AMQP连接。

>>> from zamqp import AMQPConnection
>>> connection = AMQPConnection('zamqp_queue', props)

访问连接通道。

>>> connection.channel

消费者和生成器

创建消费者回调。

>>> def callback(message):
...     pass # do anything with received message here

创建并启动消费者线程。

>>> from zamqp import AMQPConsumer
>>> from zamqp import AMQPThread
>>> consumer = AMQPConsumer('zamqp_queue', props, callback)
>>> thread = AMQPThread(consumer)
>>> thread.start()

创建生成器并发送消息。每个可序列化的Python对象都可以用作消息。

>>> from zamqp import AMQPProducer
>>> producer = AMQPProducer('zamqp_queue', props)
>>> message = 'foo'
>>> producer(message)

触发事件

创建将在远程实例中触发的事件。

>>> class MyEvent(object):
...     def __init__(self, name):
...         self.name = name

MyEvent创建监听器。当接收到AMQP事件时,将调用此函数。

>>> def my_listener(event):
...     if not isinstance(event, MyEvent):
...         return
...     # do something

>>> import zope.event
>>> zope.event.subscribers.append(my_listener)

默认的AMQPEventCallback仅调用zope.event.notify,将接收到的有效负载(即序列化的事件)作为参数,在这种情况下是一个MyEvent的实例。

启动我们的AMQP事件消费者。

>>> exchange = 'zamqp.events.fanout'
>>> queue = 'zamqp_events'
>>> from zamqp import AMQPEventCallback
>>> props = AMQPProps(exchange=exchange)
>>> callback = AMQPEventCallback()
>>> consumer = AMQPConsumer(queue, props, callback)
>>> thread = AMQPThread(consumer)
>>> thread.start()

MyEvent触发到AMQP通道。之前启动的事件消费者现在接收此事件并在自己的解释器中本地触发。

>>> from zamqp import AMQPEvent
>>> event = AMQPEvent(queue, props, MyEvent('myevent'))
>>> zope.event.notify(event)

致谢

-Robert Niederreiter <rnix@squarewave.at>

更改

1.0b1

  • 使其工作 [rnix]

项目详情


下载文件

下载适用于您平台的应用程序。如果您不确定该选择哪一个,请了解有关安装包的更多信息。

源分发

zamqp-1.0b1.tar.gz (4.7 kB 查看哈希值)

上传时间

支持

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误日志 StatusPage StatusPage 状态页面