Python rabbitMQ如何實(shí)現(xiàn)生產(chǎn)消費(fèi)者模式
(一)安裝一個(gè)消息中間件,如:rabbitMQ
(二)生產(chǎn)者
sendmq.py
import pika import sys import time # 遠(yuǎn)程rabbitmq服務(wù)的配置信息 username = 'admin' # 指定遠(yuǎn)程rabbitmq的用戶名密碼 pwd = 'admin' ip_addr = '10.1.7.7' port_num = 5672 # 消息隊(duì)列服務(wù)的連接和隊(duì)列的創(chuàng)建 credentials = pika.PlainCredentials(username, pwd) connection = pika.BlockingConnection(pika.ConnectionParameters(ip_addr, port_num, '/', credentials)) channel = connection.channel() # 創(chuàng)建一個(gè)名為balance的隊(duì)列,對(duì)queue進(jìn)行durable持久化設(shè)為True(持久化第一步) channel.queue_declare(queue='balance', durable=True) message_str = 'Hello World!' for i in range(100000000): # n RabbitMQ a message can never be sent directly to the queue, it always needs to go through an exchange. channel.basic_publish( exchange='', routing_key='balance', # 寫明將消息發(fā)送給隊(duì)列balance body=message_str, # 要發(fā)送的消息 properties=pika.BasicProperties(delivery_mode=2, ) # 設(shè)置消息持久化(持久化第二步),將要發(fā)送的消息的屬性標(biāo)記為2,表示該消息要持久化 ) # 向消息隊(duì)列發(fā)送一條消息 print(" [%s] Sent 'Hello World!'" % i) # time.sleep(0.2) connection.close() # 關(guān)閉消息隊(duì)列服務(wù)的連接
運(yùn)行sendmq.py文件,可以從以下方法查看隊(duì)列中的消息數(shù)量。
一是,rabbitmq的管理界面,如下圖所示:
二是,從服務(wù)器端命令查看
rabbitmqctl list_queues
(三)消費(fèi)者
receivemq.py
import pika import sys import time # 遠(yuǎn)程rabbitmq服務(wù)的配置信息 username = 'admin' # 指定遠(yuǎn)程rabbitmq的用戶名密碼 pwd = 'admin' ip_addr = '10.1.7.7' port_num = 5672 credentials = pika.PlainCredentials(username, pwd) connection = pika.BlockingConnection(pika.ConnectionParameters(ip_addr, port_num, '/', credentials)) channel = connection.channel() # 消費(fèi)成功的回調(diào)函數(shù) def callback(ch, method, properties, body): print(" [%s] Received %r" % (time.time(), body)) # time.sleep(0.2) # 開始依次消費(fèi)balance隊(duì)列中的消息 channel.basic_consume(queue='balance', on_message_callback=callback, auto_ack=True) print(' [*] Waiting for messages. To exit press CTRL+C') channel.start_consuming() # 啟動(dòng)消費(fèi)
運(yùn)行receivemq.py文件,可以從以下方法查看隊(duì)列中的消息數(shù)量。
或者
rabbitmqctl list_queues
延伸:
systemctl status rabbitmq-server.service # 狀態(tài)
systemctl restart rabbitmq-server.service # 重啟
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
python-序列解包(對(duì)可迭代元素的快速取值方法)
今天小編就為大家分享一篇python-序列解包(對(duì)可迭代元素的快速取值方法),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來(lái)看看吧2019-08-08TFRecord格式存儲(chǔ)數(shù)據(jù)與隊(duì)列讀取實(shí)例
今天小編就為大家分享一篇TFRecord格式存儲(chǔ)數(shù)據(jù)與隊(duì)列讀取實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來(lái)看看吧2020-01-01python數(shù)據(jù)分析之聚類分析(cluster analysis)
聚類分析本身不是一個(gè)特定的算法,而是要解決的一般任務(wù)。它可以通過各種算法來(lái)實(shí)現(xiàn),這些算法在理解群集的構(gòu)成以及如何有效地找到它們方面存在顯著差異。這篇文章主要介紹了python數(shù)據(jù)分析之聚類分析(cluster analysis),需要的朋友可以參考下2021-11-11python實(shí)現(xiàn)圖像的二分類的示例詳解
要實(shí)現(xiàn)圖像的二分類,可以使用深度學(xué)習(xí)中的卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Network, CNN)模型,本文將使用Keras庫(kù)實(shí)現(xiàn)的簡(jiǎn)單CNN模型示例,感興趣的同學(xué)跟著小編一起來(lái)看看吧2023-08-08利用Python2下載單張圖片與爬取網(wǎng)頁(yè)圖片實(shí)例代碼
這篇文章主要給大家介紹了關(guān)于利用Python2下載單張圖片與爬取網(wǎng)頁(yè)圖片的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧。2017-12-12Python實(shí)現(xiàn)圖像隨機(jī)添加椒鹽噪聲和高斯噪聲
圖像噪聲是指存在于圖像數(shù)據(jù)中的不必要的或多余的干擾信息。在噪聲的概念中,通常采用信噪比(Signal-Noise?Rate,?SNR)衡量圖像噪聲。本文將利用Python實(shí)現(xiàn)對(duì)圖像隨機(jī)添加椒鹽噪聲和高斯噪聲,感興趣的可以了解一下2022-09-09