码迷,mamicode.com
首页 > 编程语言 > 详细

python操作RabbiMQ

时间:2016-01-23 01:06:26      阅读:297      评论:0      收藏:0      [点我收藏+]

标签:

RabbitMQ是一个在AMQP基础上完整的,可复用的企业消息系统。他遵循Mozilla Public License开源协议。

MQ全称为Message Queue, 消息队列(MQ)是一种应用程序对应用程序的通信方法。应用程序通过读写出入队列的消息(针对应用程序的数据)来通信,而无需专用连接来链接它们。消 息传递指的是程序之间通过在消息中发送数据进行通信,而不是通过直接调用彼此来通信,直接调用通常是用于诸如远程过程调用的技术。排队指的是应用程序通过 队列来通信。队列的使用除去了接收和发送应用程序同时执行的要求。

 

puthon操作rabbitMQ的模块名为:pika
 
 
在操作rabbitMQ之前,先通过Queue理解生产者消费者模型
技术分享
 1 #!/usr/bin/env python
 2 # _*_coding:utf-8 _*_
 3 
 4 import  Queue
 5 import  threading
 6 
 7 message = Queue.Queue(10)
 8 
 9 
10 def producter(i):
11 
12     while True:
13         message.put(i)
14 
15 def consumer(i):
16     while True:
17         message.get()
18 
19 
20 
21 for i in range(5):
22     w = threading.Thread(target=producter,args=(i,))
23     w.start()
24 
25 for i in range(2):
26     w = threading.Thread(target=consumer,args=(i,))
27     w.start()
生产者消费者模型

 

对于RabbitMQ来说,生产和消费不再针对内存里的一个Queue对象,而是某台服务器上的RabbitMQ Server实现的消息队列。

技术分享
 1 #!/usr/bin/env python
 2 # _*_coding:utf-8 _*_
 3 
 4 import  pika
 5 
 6 connection = pika.BlockingConnection(pika.ConnectionParameters(host=192.168.1.108)) #连接一台rabbitMQ
 7 
 8 channel = connection.channel()  #创建一个频道
 9 
10 channel.queue_declare("chenchao")  #声明一个消息队列
11 
12 
13 channel.basic_publish(exchange=‘‘,routing_key="chenchao",body="Fucking!")   #发送消息
14 
15 print "sent Fucking world!!!!"
16 
17 connection.close()  #关闭连接
生产者
技术分享
 1 #!/usr/bin/env python
 2 # _*_coding:utf-8 _*_
 3 
 4 # #############################消费者########################
 5 
 6 import  pika
 7 
 8 connection = pika.BlockingConnection(pika.ConnectionParameters(host=192.168.1.108))
 9 
10 channel = connection.channel()
11 
12 channel.queue_declare("chenchao")
13 
14 def callback(ch, method, properties, body):  #固定格式 必须有4个参数
15     print body
16 
17 
18 channel.basic_consume(callback,queue="chenchao",no_ack=True)  #将从队列里取出的数据回调给callback方法
19 
20 channel.start_consuming()   #开始取值
消费者

 

 

 

python操作RabbiMQ

标签:

原文地址:http://www.cnblogs.com/chenchao1990/p/5152484.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!