pika python amqp客户端库
pika-dev的Python项目详细描述
pika是用于python的rabbitmq(amqp-0-9-1)客户机库。
简介
pika是amqp 0-9-1协议的纯python实现,包括rabbitmq的 分机。
- 支持Python2.7和3.4+。
- 因为线程不适合每种情况,所以它不适合 需要螺纹。也要注意不要禁止他们。相同的 用于greenlet、回调、continuations和生成器。它是 但不一定是线程安全的,您的里程将有所不同。
- 人们可能正在使用直接套接字,普通的oldselect(), 或任何一种让网络事件往返于 python应用程序。皮卡试图与所有这些保持一致,并且 使其适应新环境尽可能简单。
文档
pika的文档可以在https://pika.readthedocs.io
示例
下面是使用blockingconnection适配器发送消息的最简单示例:
importpikaconnection=pika.BlockingConnection()channel=connection.channel()channel.basic_publish(exchange='example',routing_key='test',body='Test Message')connection.close()
以及编写阻塞消费者的示例:
importpikaconnection=pika.BlockingConnection()channel=connection.channel()formethod_frame,properties,bodyinchannel.consume('test'):# Display the message parts and ack the messageprint(method_frame,properties,body)channel.basic_ack(method_frame.delivery_tag)# Escape out of the loop after 10 messagesifmethod_frame.delivery_tag==10:break# Cancel the consumer and return any pending messagesrequeued_messages=channel.cancel()print('Requeued %i messages'%requeued_messages)connection.close()
Pika提供以下适配器
- AsyncioConnection-Python3异步事件循环的适配器
- blockingconnection-在库顶部启用阻塞、同步操作,以便简单使用
- 选择连接-快速异步适配器
- Tornado连接-用于Tornado IO循环的适配器http://tornadoweb.org
- twistedconnection-用于twisted异步包的适配器http://twistedmatrix.com/
贡献
要为Pika做出贡献,请确保任何新功能或更改 对现有功能^ {STR 1 } $包括测试覆盖范围。
pull请求添加或更改没有覆盖范围的代码,很可能会被拒绝。
另外,请使用yapf格式化代码 在发出请求之前使用google样式。