Python3之RabbitMQ
- 接收消息
#!/usr/bin/env python
# -*- coding:utf-8 -*-
# Author: vita
import pika
# 建立与rabbitmq的连接
credentials = pika.PlainCredentials("mq","mq123")
connection = pika.BlockingConnection(pika.ConnectionParameters('192.168.64.126',virtual_host='vhosttest', 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()
- send 发送消息
#!/usr/bin/env python
# -*- coding:utf-8 -*-
# Author: vita
import pika
# 创建凭证,使用rabbitmq用户密码登录 # 去邮局取邮件,必须得验证身份
credentials = pika.PlainCredentials("mq","mq123")
# 新建连接,这里localhost可以更换为服务器ip # 找到这个邮局,等于连接上服务器
connection = pika.BlockingConnection(pika.ConnectionParameters('192.168.64.126',virtual_host='vhosttest', 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()
- 接收结果
消费者接收到了任务:'武松又去打老虎啦2'
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构