跳转到主要内容

Pika Python AMQP 客户端库

项目描述

Pika 是一个 Python 的 RabbitMQ (AMQP-0-9-1) 客户端库。

Version Python versions Status Coverage License Documentation Status

简介

Pika 是 AMQP 0-9-1 协议的纯 Python 实现,包括 RabbitMQ 的扩展。

  • 支持 Python 2.7 和 3.4+。

  • 由于线程并不适合所有情况,它不需要线程。它也确保不会禁止它们。同样适用于 greenlets、回调、延续和生成器。然而,它不一定线程安全,具体效果可能会有所不同。

  • 人们可能会使用直接套接字、普通的 select() 或其他各种方式将网络事件从 Python 应用程序中获取和发送。Pika 尽量与所有这些兼容,并尽可能简化将其适应新环境的过程。

文档

Pika 的文档可以在 https://pika.readthedocs.io 找到。

示例

以下是最简单的使用示例,使用 BlockingConnection 适配器发送消息

import pika
connection = pika.BlockingConnection()
channel = connection.channel()
channel.basic_publish(exchange='example',
                      routing_key='test',
                      body='Test Message')
connection.close()

以及一个编写阻塞消费者的示例

import pika
connection = pika.BlockingConnection()
channel = connection.channel()

for method_frame, properties, body in channel.consume('test'):

    # Display the message parts and ack the message
    print(method_frame, properties, body)
    channel.basic_ack(method_frame.delivery_tag)

    # Escape out of the loop after 10 messages
    if method_frame.delivery_tag == 10:
        break

# Cancel the consumer and return any pending messages
requeued_messages = channel.cancel()
print('Requeued %i messages' % requeued_messages)
connection.close()

Pika 提供以下适配器

  • AsyncioConnection - Python3 AsyncIO 事件循环的适配器

  • BlockingConnection - 在库上启用阻塞、同步操作,适用于简单用途

  • 选择连接 - 快速异步适配器

  • Tornado连接 - 用于与Tornado IO循环配合使用的适配器 http://tornadoweb.org

  • Twisted连接 - 用于与Twisted异步包配合使用的适配器 http://twistedmatrix.com/

贡献

要为pika做出贡献,请确保任何新的功能或对现有功能的更改都包含测试覆盖。

不包含覆盖范围的代码添加或更改的拉取请求很可能会被拒绝。

此外,请在提交拉取请求之前,使用yapfgoogle风格格式化您的代码。

项目详情


下载文件

下载适用于您平台的文件。如果您不确定选择哪个,请了解更多关于安装包的信息。

源代码分发

pika-dev-1.0.0b1.dev1.tar.gz (101.5 kB 查看哈希值)

上传时间 源代码

构建分发

pika_dev-1.0.0b1.dev1-py2.py3-none-any.whl (111.1 kB 查看哈希值)

上传时间 Python 2 Python 3

由以下支持

AWSAWS云计算和安全赞助商DatadogDatadog监控FastlyFastlyCDNGoogleGoogle下载分析MicrosoftMicrosoftPSF赞助商PingdomPingdom监控SentrySentry错误记录StatusPageStatusPage状态页面