ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

发布订阅

2022-02-10 18:03:34  阅读:179  来源: 互联网

标签:订阅 pika exchange queue 发布 ex1 credentials channel


Publish.py

import pika
credentials = pika.PlainCredentials("admin","admin")
connection = pika.BlockingConnection(pika.ConnectionParameters('192.168.164.129',credentials=credentials))
channel = connection.channel()

# exchange
channel.exchange_declare(exchange='ex1',exchange_type='fanout')

# exchange
channel.basic_publish(exchange='ex1',
                      routing_key='',
                      body='landson')

connection.close()import pika
credentials = pika.PlainCredentials("admin","admin")
connection = pika.BlockingConnection(pika.ConnectionParameters('192.168.164.129',credentials=credentials))
channel = connection.channel()

# exchange
channel.exchange_declare(exchange='ex1',exchange_type='fanout')

# exchange
channel.basic_publish(exchange='ex1',
                      routing_key='',
                      body='landson')

connection.close()

Subscribe.py

Subscribe.py这个脚本运行多次,就会生成多个空队列,都会和exchange='ex1'绑定,
然后exchange='ex1'把消息发送到所有和它绑定的队列里面,每一个消费者从关联的队列中拿到消息
import pika

credentials = pika.PlainCredentials("admin","admin")
connection = pika.BlockingConnection(pika.ConnectionParameters('192.168.164.129',credentials=credentials))
channel = connection.channel()

# exchange='m1',exchange(秘书)的名称
# exchange_type='fanout' , 秘书工作方式将消息发送给所有的队列
channel.exchange_declare(exchange='ex1',exchange_type='fanout')

# 随机生成一个队列,exclusive=True表示:一旦消费者的连接关闭,就要删除与之关联的队列
result = channel.queue_declare(queue='',exclusive=True)
queue_name = result.method.queue
# print(queue_name)
# 让exchange和queque进行绑定.
channel.queue_bind(exchange='ex1',queue=queue_name)


def callback(ch, method, properties, body):
    print("消费者接受到了任务: %r" % body)

channel.basic_consume(queue=queue_name,on_message_callback=callback,auto_ack=True)

channel.start_consuming()

标签:订阅,pika,exchange,queue,发布,ex1,credentials,channel
来源: https://www.cnblogs.com/landson/p/15880210.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有