介绍

Pika是AMQP 0-9-1协议的纯Python实现,试图保持与底层网络支持库相当独立。

 支持Python 2.6+和3.3+。由于线程不适合每一种情况,它不需要线程。 也不要禁止他们。 greenlets, callbacks, continuations and generators也是如此。 然而,它不一定是线程安全的,实际的结果可能会有些不同。。人们可能正在使用 direct sockets,普通的老的select(),或是从python应用程序获取网络事件的各种各样的方式。 Pika试图与所有这些保持兼容,并使其适应尽可能简单的新环境。

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

import pikacredentials = pika.PlainCredentials('wu','123456')
connection = pika.BlockingConnection(pika.ConnectionParameters('127.0.0.1',5672,'simple',credentials))
channel = connection.channel() #在连接上创建一个频道channel.queue_declare(queue='pikamq') #声明一个队列,生产者和消费者都要声明一个相同的队列,用来防止万一某一方挂了,另一方能正常运行channel.basic_publish(exchange='', #交换机routing_key='pikamq',  # queue名字 #路由键,写明将消息发往哪个队列,本例是将消息发往队列pikamqbody='Test Message') # 消息内容
connection.close() #当生产者发送完消息后,可选择关闭连接


写一个blocking消费者的例子:

import pika
credentials = pika.PlainCredentials('wu','123456')
connection = pika.BlockingConnection(pika.ConnectionParameters('127.0.0.1',5672,'simple',credentials))
channel = connection.channel() #在连接上创建一个频道channel.queue_declare(queue='pikamq') #声明一个队列,生产者和消费者都要声明一个相同的队列,用来防止万一某一方挂了,另一方能正常运行for method_frame, properties, body in channel.consume('test'):#显示消息部分并确认消息print method_frame, properties, bodychannel.basic_ack(method_frame.delivery_tag)#在10条消息后退出循环if method_frame.delivery_tag == 10:break#取消消费者并返回任何待处理消息
requeued_messages = channel.cancel()
print 'Requeued %i messages' % requeued_messages
connection.close()


Pika提供以下适配器

 BlockingConnection - 启用对库进行阻塞,同步操作以进行简单的使用LibevConnection - 用于libev事件循环http://libev.schmorp.de的适配器SelectConnection - 快速异步适配器TornadoConnection - 适用于Tornado IO Loop的适配器http://tornadoweb.orgTwistedConnection - 用于Twisted异步包的适配器http://twistedmatrix.com/

Pika使用入门(一)【介绍】相关推荐

  1. java开发和基于asp.net开发有什么优越性?_java语言的入门开始介绍

    java编程语言是目前世界最流行的编程语言,它是在c++的基础上开发出来的语言,它取其精华去其糟粕让java语言具有功能强大和简单易用的特征. java具有:面对对象.分布式.健壮性.安全性.平台独立 ...

  2. FPGA入门基础介绍

    1.1 FPGA入门基础介绍 1.1.1 本节目录 1)本节目录: 2)本节引言: 3)FPGA简介: 4)FPGA入门基础介绍: 5)结束语. 1.1.2 本节引言 "不积跬步,无以至千里 ...

  3. EasyX入门和介绍

    //EasyX入门和介绍 //画实心圆 #include <graphics.h> //引用EasyX图形库 #include <conio.h> int main() {in ...

  4. 【无标题】C#nbsp;语言入门基础介绍学习通http://www.bdgxy.com/

    文章来源: 学习通http://www.bdgxy.com/ 普学网http://www.boxinghulanban.cn/ 智学网http://www.jaxp.net/ 表格制作excel教程h ...

  5. 第一章 51单片机开发入门知识介绍

    第一章 单片机开发入门知识介绍 1.1 51单片机介绍 51单片机是对所有兼容Intel 8031指令系统的单片机的统称. 该系列单片机的始祖是Intel的8004单片机,后来随着Flash rom技 ...

  6. Android/Linux 子系统Graphics图形栈入门普法介绍

        Android/Linux 子系统Graphics图形栈入门普法介绍 写在最前面   由于工作原因,最近在公司做了一个关于Android/Linux 子系统Graphics图形栈入门相关知识的 ...

  7. 51单片机入门基础介绍

    51单片机入门基础介绍 文章目录 51单片机入门基础介绍 前言 常用元器件 发光二极管 数码管 LED数码管的显示方式 按键 定时计数器 串行口控制寄存器SCON 中断系统 中断源及中断请求 中断允许 ...

  8. Docker新手入门详细介绍

    Docker新手入门详细介绍 Docker 起源于 dotCloud 公司的内部项目,于 2013 年 3 月以 Apache 2.0 授权协议开源,主要项目代码在 GitHub 上进行维护,2013 ...

  9. 新手入门:介绍JSP中request属性的用法

    新手入门:介绍JSP中request属性的用法 一.request.getParameter() 和request.getAttribute() 区别 (1)request.getParameter( ...

  10. iMobile for ReactNative入门使用介绍

    ##iMobile for ReactNative入门使用介绍 ####iMobile for ReactNative是SuperMap iMobile推出的一款基于React-Native框架的移动 ...

最新文章

  1. ASP.NET Razor – C# 变量简介
  2. 组件间数据交互||父组件向子组件传值-基本使用|| 父组件向子组件传值-props属性名规则
  3. 深度学习100例 | 第29天-ResNet50模型:船型识别
  4. 绝了!华为、H3C、锐捷交换机配置命令大全
  5. 《精通Linux内核必会的75个绝技》知识杂记
  6. 觉得自己目前还很菜。
  7. linux多CPU进程负载均衡解析
  8. 设置win10保护色
  9. 凤凰项目-----读书笔记
  10. ajax教程初始模板,ajax实战入门模板
  11. E-chart官方源码下载和关系图搭建
  12. Java 恋爱纪念日(日期问题)
  13. 固态硬盘测试软件270分,怎么读懂AS SSD Benchmark的跑分成绩
  14. uc打开html文件是空的,UC浏览器中打开不出现主页的解决方法
  15. 校园网、CMCC自动登录
  16. Selenium之Webdriver驱动大全【Firefox、Chrome、IE、Edge、Opera、PhantomJS】
  17. 14个10G电口模块(10GBase-T)的相关问题
  18. 电脑一键还原,电脑怎么一键还原系统(手把手教你电脑一键还原)
  19. 数字孪生技术在智慧城市规划中的发展影响及其应用
  20. 网络工程师速记100条知识点

热门文章

  1. javascript设计模式-中介者模式(mediator pattern)
  2. newcoder 筱玛的迷阵探险(搜索 + 01字典树)题解
  3. 2016年中国智慧城市发展前瞻
  4. 【Pygame实战】风靡全球的切水果游戏升级版“水果忍者”上线啦,你敢来PK嘛?
  5. 算法将成为人工智能时代的“科技原力”
  6. 上车是什么意思_老司机,“上车”的意思,你真的懂吗?
  7. 关于周杰伦的歌曲的启发
  8. 简介IntelliJ IDEAD
  9. 【java基础】java继承从“我爸是李刚”讲起
  10. 192.168.49.1登录_192.168.49.1路由器登录页面打不开