RabbitMQ python模块pika生产者消费者轮询模型。

完整代码如下:

生产者,producer

 1
 2 
 3 import pika
 4 connection = pika.BlockingConnection(
 5     pika.ConnectionParameters('localhost'))#建立一个最基本的socket
 6 chanel = connection.channel()#声明一个管道
 7 
 8 chanel.queue_declare(queue='name')#给管道创建一个队列,参数是管道队列名。
 9 
10 chanel.basic_publish(exchange='',
11                      routing_key='name',
12                      body ='HELLO WORD!')#要发送的消息。
13 print( '发出一个消息')
14 connection.close()#关闭


 消费者:

 1 import pika,time
 2 
 3 consumer = pika.BlockingConnection
 4     (pika.ConnectionParameters('localhost'))#创建socket连接
 5 channel = consumer.channel()#创建管道
 6 channel.queue_declare(queue='name')
 7 
 8 def backcall(ch,method,properties,body):#参数body是发送过来的消息。
 9     print(ch,method,properties)
10     time.sleep(15)
11     print('[x] Received %r'%body)
12 
13 channel.basic_consume(backcall,#回调函数。执行结束后立即执行另外一个函数返回给发送端是否执行完毕。
14                       queue='name',
15                       no_ack=True#不会告知服务端我是否收到消息。一般注释。
16                        )#如果注释掉,对方没有收到消息的话不会将消息丢失,始终在队列里等待下次发送。
17 
18 print('waiting for message To exit   press CTRL+C')
19 channel.start_consuming()#启动后进入死循环。一直等待消息。
原文地址:https://www.cnblogs.com/hushuning/p/7941556.html