Python 訊息佇列rabbitmq使用之入門案例
阿新 • • 發佈:2019-01-24
1、在本機上安裝好rabbitmq
2、安裝pika 操作rabbitmq的三方庫
建議在虛擬環境中操作
pip install pika
3、入門例項
釋出端程式碼,我這裡命名為first_p.py
import pika
# 建立一個連結
connection = pika.BlockingConnection(pika.ConnectionParameters('localhost'))
# 開啟連結
channel = connection.channel()
# 指明一個名為hello的佇列
channel.queue_declare(queue='hello' )
# 開始釋出訊息
channel.basic_publish(exchange='',
routing_key='hello',
body='Hello world!')
print(" [x] Sent 'Hello World!'")
# 關閉連結
connection.close()
# 注意:在shell中使用命令:sudo rabbitmqctl list_queues 可以檢視所有的佇列,以及佇列內的訊息數量
消費端程式碼,我這裡命名為first_c.py
import pika
connection = pika.BlockingConnection(pika.ConnectionParameters(host='localhost' ))
channel = connection.channel()
channel.queue_declare(queue='hello')
# 定義一個callback函式,當有訊息時就會執行它
def callback(ch, method, properties, body):
print(" [x] Received %r" % body.decode())
# 接收訊息,並進行執行
channel.basic_consume(callback,
queue='hello',
no_ack=True ) # 這裡的no_ack=True 表示關閉訊息確認。預設是開啟的
print(' [*] Waiting for messages. To exit press CTRL+C')
# 開始消費,表示開始接收訊息
channel.start_consuming()
# 注意這裡要一直接收的話不能關閉連結
4、如何執行
釋出端:
python first_p.py hello world!
消費端:
python first_c.py
先執行消費端之後在執行傳送端,注意終端輸出