pika python amqp客户端库

pika-dev的Python项目详细描述


pika是用于python的rabbitmq(amqp-0-9-1)客户机库。

VersionPython versionsStatusCoverageLicenseDocumentation Status

简介

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样式。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
构造函数或创建对象时未调用java组件   java如何序列化Hibernate实体,而不在测试代码中自动生成字段?   swing获取字符串java中的图标包路径   zip Java SE 6使用ZipEntry识别目录时遇到问题   java在Javafx中创建闪存卡集   java检查带有条件的两个变量signum   Kotlin的类型具体化使哪些在Java或Scala中不可能的事情成为可能?   java正在Eclipse中创建@string资源约定?   Java中的数组分离链   java为什么局部变量仍然显示警告,尽管方法中使用了值?   java Selenium Webdriver:自动重复成功的场景   java为什么这会导致堆栈溢出错误?有向图   java如何访问泛型对象的类型?   启用proguard(缩小)时出现java Jackson错误   java使用Spring@Configuration构建rest模板   java为什么springbootdatajdbc查询方法不需要参数构造函数   导入JCC时发生java错误。找不到libjava。所以   Java 8将列表流到具有相同值的映射中   JAVANetbeans中的Log4j2不会打印正确的输出,也不会保存文件