当前位置: 首页 > news >正文

基于python 开发调试rabbitmq - 2

基于python 3 pika 调试 openstack rabbitmq

创建工作队列,类比一个大的工作,需要发送多个小任务到队列中,让多个消费者消费

多个任务时,多个消费者消费任务

new_task.py

#!/usr/bin/env python
import pika
import syscredentials = pika.PlainCredentials('openstack', 'servicepasswd')
connection = pika.BlockingConnection(pika.ConnectionParameters(host='10.146.203.171',virtual_host='/',credentials=credentials))
channel = connection.channel()channel.queue_declare(queue='task_queue', durable=True)message = ' '.join(sys.argv[1:]) or "Hello World!"
channel.basic_publish(exchange='',routing_key='task_queue',body=message,properties=pika.BasicProperties(delivery_mode=pika.DeliveryMode.Persistent))
print(f" [x] Sent {message}")
connection.close()

worker1.py

#!/usr/bin/env python
import pika
import timecredentials = pika.PlainCredentials('openstack', 'servicepasswd')
connection = pika.BlockingConnection(pika.ConnectionParameters(host='10.146.203.171',virtual_host='/',credentials=credentials))
channel = connection.channel()channel.queue_declare(queue='task_queue', durable=True)
print(' [*] Waiting for messages. To exit press CTRL+C')def callback(ch, method, properties, body):print(f" [x] Received {body.decode()}")time.sleep(body.count(b'.'))print(" [x] Done")ch.basic_ack(delivery_tag=method.delivery_tag)channel.basic_qos(prefetch_count=1)  #qos  限制,公平分发
channel.basic_consume(queue='task_queue', on_message_callback=callback)channel.start_consuming()

worker2.py

代码同worker1

当多次执行new_task.py 时,模拟发送了多个任务出去,此时 worker1和worker2 各自都能消费到消息

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 鸿蒙前端开发——工具安装与项目创建
  • Vue2中watch与Vue3中watch对比
  • “论软件开发过程RUP及其应用”写作框架,软考高级,系统架构设计师
  • 使用 GPT-4 Vision 的 CLIP 嵌入来改进多模态 RAG
  • 【运维】JetBrains Gateway (Pycharm) SSH免密连接,改为免密连接
  • 【Material-UI】Floating Action Button (FAB) 详解:基础用法
  • ubuntu22.04不生成core文件
  • 结构体structure、共用体union
  • Elasticsearch中的自动补全功能详解与实践
  • 苹果Mac电脑——装macOS和Windows双系统的方法
  • html+css+js网页制作 京东首页官网 ui还原度100%
  • 海康摄像头(测温型)桌面客户端开发分享
  • yolov8目标检测与速度估计
  • 0603定时器的输入捕获
  • 【ENVI的监督分类功能】
  • hexo+github搭建个人博客
  • [译]CSS 居中(Center)方法大合集
  • Apache的基本使用
  • Consul Config 使用Git做版本控制的实现
  • CSS3 变换
  • emacs初体验
  • javascript 总结(常用工具类的封装)
  • JavaScript异步流程控制的前世今生
  • js学习笔记
  • Making An Indicator With Pure CSS
  • Python_OOP
  • ucore操作系统实验笔记 - 重新理解中断
  • ViewService——一种保证客户端与服务端同步的方法
  • -- 查询加强-- 使用如何where子句进行筛选,% _ like的使用
  • 理清楚Vue的结构
  • 前端技术周刊 2019-01-14:客户端存储
  • 使用API自动生成工具优化前端工作流
  • 数据库巡检项
  • 小白应该如何快速入门阿里云服务器,新手使用ECS的方法 ...
  • # 利刃出鞘_Tomcat 核心原理解析(八)-- Tomcat 集群
  • #Datawhale AI夏令营第4期#AIGC文生图方向复盘
  • #在线报价接单​再坚持一下 明天是真的周六.出现货 实单来谈
  • $NOIp2018$劝退记
  • (1)(1.13) SiK无线电高级配置(六)
  • (2)MFC+openGL单文档框架glFrame
  • (3)Dubbo启动时qos-server can not bind localhost22222错误解决
  • (LeetCode 49)Anagrams
  • (Matalb时序预测)PSO-BP粒子群算法优化BP神经网络的多维时序回归预测
  • (Mirage系列之二)VMware Horizon Mirage的经典用户用例及真实案例分析
  • (Qt) 默认QtWidget应用包含什么?
  • (代码示例)使用setTimeout来延迟加载JS脚本文件
  • (免费领源码)Java#Springboot#mysql农产品销售管理系统47627-计算机毕业设计项目选题推荐
  • (四)docker:为mysql和java jar运行环境创建同一网络,容器互联
  • (转)http协议
  • (转)用.Net的File控件上传文件的解决方案
  • (转)总结使用Unity 3D优化游戏运行性能的经验
  • *** 2003
  • ******之网络***——物理***
  • .FileZilla的使用和主动模式被动模式介绍
  • .NET/C# 反射的的性能数据,以及高性能开发建议(反射获取 Attribute 和反射调用方法)