91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

RabbitMQ發送端接收端生產者消費者的示例分析

發布時間:2021-12-24 09:46:08 來源:億速云 閱讀:169 作者:小新 欄目:編程語言

這篇文章給大家分享的是有關RabbitMQ發送端接收端生產者消費者的示例分析的內容。小編覺得挺實用的,因此分享給大家做個參考,一起跟隨小編過來看看吧。

rabbit_conn_send_producer.py
import pika

connection = pika.BlockingConnection(pika.ConnectionParameters(
    'localhost'))#rabbit默認端口5672 建立一個基本的 socket連接
channel = connection.channel()#聲明一個管道 在管道里面發消息

# 聲明queue
channel.queue_declare(queue='hello')

# 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='hello',#queue名字
                      body='Hello World!') #body 發送的消息
print(" [x] Sent 'Hello World!'")
connection.close()

rabbit_conn_recive_consumer.py
# _*_coding:utf-8_*_
__author__ = 'Alex Li'
import pika

connection = pika.BlockingConnection(pika.ConnectionParameters(
    'localhost')) #rabbit默認端口5672 建立一個基本的 socket連接
channel = connection.channel()#聲明一個管道 在管道里面收消息

# You may ask why we declare the queue again ? we have already declared it in our previous code.
# We could avoid that if we were sure that the queue already exists. For example if send.py program
# was run before. But we're not yet sure which program to run first. In such cases it's a good
# practice to repeat declaring the queue in both programs.
#channel.queue_declare(queue='hello')#聲明queue


def callback(ch, method, properties, body):#處理消息
    print("---->",ch,method,properties)#ch 管道內存對象地址 method:發給queue的信息
    print(" [x] Received %r" % body)


channel.basic_consume(#消費消息
           callback,#如果收到消息,就調用CALLBACK函數來處理消息
           queue='hello',#從哪個隊列里收消息
           no_ack=True) #不需要確認消息是否接收

print(' [*] Waiting for messages. To exit press CTRL+C')
channel.start_consuming()#啟動 開始收消息 一直收,沒有就卡主

rabbit_conn_recive_consumer_no_ack.py
# _*_coding:utf-8_*_
__author__ = 'Alex Li'
import pika,time

connection = pika.BlockingConnection(pika.ConnectionParameters(
    'localhost')) #rabbit默認端口5672 建立一個基本的 socket連接
channel = connection.channel()#聲明一個管道 在管道里面收消息

# You may ask why we declare the queue again ? we have already declared it in our previous code.
# We could avoid that if we were sure that the queue already exists. For example if send.py program
# was run before. But we're not yet sure which program to run first. In such cases it's a good
# practice to repeat declaring the queue in both programs.
#channel.queue_declare(queue='hello')#聲明queue


def callback(ch, method, properties, body):#回調函數
    print("---->",ch,method,properties)#ch 管道內存對象地址 method:發給queue的信息
    time.sleep(5)#模擬消息處理時間
    print(" [x] Received %r" % body)


channel.basic_consume(#消費消息
              callback,#如果收到消息,就調用CALLBACK函數來處理消息
           queue='hello',#從哪個隊列里收消息
              #no_ack=True)#no acknowledgement 不確認 開啟的話表示不確認消息是否接收 接沒接收都不會給服務器端發消息 如果客戶端沒收到消息就忽略了
              #關閉的話就要服務器就要確認消息是否接收,沒有確認到接收消息就會一直保留消息,會自動轉到另一個客戶端,socket一斷,rabbitMQ就將消息轉給另一個客戶端
              #發送端生產者發送一條消息,被消費者接受者收到了,消費者接收端處理完之后自動給生產者發送端發一個確認,說消息處理完了,然后生產者發送端才會把消息從隊列里刪除,只要沒收到確認就不會刪除,如果生產者發送端沒收到確認,就會把消息轉給另一個消費者接收端
          )

print(' [*] Waiting for messages. To exit press CTRL+C')
channel.start_consuming()#啟動 開始收消息 一直收,沒有就卡主

感謝各位的閱讀!關于“RabbitMQ發送端接收端生產者消費者的示例分析”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,讓大家可以學到更多知識,如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

舟曲县| 若羌县| 潍坊市| 峨边| 黄平县| 卓尼县| 美姑县| 汶川县| 玉环县| 观塘区| 漳浦县| 华宁县| 介休市| 安龙县| 册亨县| 崇信县| 保德县| 农安县| 东安县| 长沙市| 小金县| 贺州市| 文山县| 织金县| 宝兴县| 浏阳市| 金寨县| 即墨市| 井陉县| 客服| 武宣县| 云阳县| 万载县| 周宁县| 英超| 湖北省| 霍城县| 东乡县| 泽普县| 辽阳县| 钟山县|