標籤:一個隊列 連結 call 訊息佇列 routing print block nec 一個
我們以前學過的隊列,線上程中針對同一程式下的多個線程直接 可以實現訊息的發送接收,對於進程來說只能在父進程與子進程中或者 父進程 下的子進程之間 進行,都無法實現連個進程的互動
RabbitMQ 實現了這一功能
需要先下載RabbitMQ 之後還需要下載erlang語言,因為RabbitMQ就是由erlang編輯而成的!
生產者:
import pika#我們先產生一個連結的執行個體connection=pika.BlockingConnection(pika.ConnectionParameters("localhost"))#開通一個管道channer=connection.channel()#給管道一個隊列,隊列的名字叫Hellochanner.queue_declare(queue="hello")#在管道中需要傳輸的資料格式channer.basic_publish(exchange="",routing_key="hello",body="hello world!")print(" sent the word!")connection.close()
消費者:
import pika#這三步驟 其實 兩個裡面都是一樣的connection=pika.BlockingConnection(pika.ConnectionParameters("localhost"))channer=connection.channel()channer.queue_declare("hello")def callback(ch,menthod,properties,body): print("recevied %s"%body)channer.basic_consume(callback,queue="hello",no_ack=True)print("waiting for message ")channer.start_consuming()
python 學習總結3 訊息佇列RabbitMQ