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()#啟動后進入死循環。一直等待消息。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM