python与RabbitMQ交互
2022/2/10 20:20:14
本文主要是介绍python与RabbitMQ交互,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
单发送单接收 - 生产者消费者模型
python消息队列: 线程queue(同一进程之间进行交互) 进程queue(父子进程进行交互或同一个进程下的多个子进程进行交互) 两个完全独立的python程序: 是不能用上面的queue进行交互的,或者和其他语言交互的方式有哪些呢? 1.Disk:可以把数据写入磁盘 2.Socket通信 3.消息中间件:RabbitMQ,ZeroMQ,ActiveMQ等。
生产者send.py #!/usr/bin/env python # -*- coding:utf-8 -*- import pika # 创建凭证,使用rabbitmq用户密码登录 # 去邮局取邮件,必须得验证身份 credentials = pika.PlainCredentials("admin","123456") # 新建连接,这里localhost可以更换为服务器ip # 找到这个邮局,等于连接上服务器 connection = pika.BlockingConnection(pika.ConnectionParameters(‘10.0.0.61‘,credentials=credentials)) # 创建频道 # 建造一个大邮箱,隶属于这家邮局的邮箱,就是个连接 channel = connection.channel() # 声明一个队列,用于接收消息,队列名字叫“水许传” channel.queue_declare(queue=‘SH‘) # 注意在rabbitmq中,消息想要发送给队列,必须经过交换(exchange),初学可以使用空字符串交换(exchange=‘‘), # 它允许我们精确的指定发送给哪个队列(routing_key=‘‘),参数body值发送的数据 channel.basic_publish(exchange=‘‘, routing_key=‘SH‘, body=‘武松又去打老虎啦2‘) print("已经发送了消息") # 程序退出前,确保刷新网络缓冲以及消息发送给rabbitmq,需要关闭本次连接 connection.close()
消费者receive.py #!/usr/bin/env python # -*- coding:utf-8 -*- import pika # 建立与rabbitmq的连接 credentials = pika.PlainCredentials("admin","123456") connection = pika.BlockingConnection(pika.ConnectionParameters(‘10.0.0.61‘,credentials=credentials)) channel = connection.channel() channel.queue_declare(queue="SH") def callback(ch,method,properties,body): print("消费者接收到了任务:%r"%body.decode("utf8")) # 有消息来临,立即执行callback,没有消息则夯住,等待消息 # 老百姓开始去邮箱取邮件啦,队列名字是水许传 # def basic_consume(self, # queue, # on_message_callback, # auto_ack=False, # exclusive=False, # consumer_tag=None, # arguments=None): # 这个参数的调用有所改动 # 第一个参数是队列 # 第二个是回调函数 # 第三个这是auto_ack=True channel.basic_consume("SH",callback,True) # 开始消费,接收消息 channel.start_consuming()
这篇关于python与RabbitMQ交互的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-26Python基础编程
- 2024-11-25Python编程基础:变量与类型
- 2024-11-25Python编程基础与实践
- 2024-11-24Python编程基础详解
- 2024-11-21Python编程基础教程
- 2024-11-20Python编程基础与实践
- 2024-11-20Python编程基础与高级应用
- 2024-11-19Python 基础编程教程
- 2024-11-19Python基础入门教程
- 2024-11-17在FastAPI项目中添加一个生产级别的数据库——本地环境搭建指南