IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Python知识库 -> flask实现使用装饰器完成rabbitmq消费队列 -> 正文阅读

[Python知识库]flask实现使用装饰器完成rabbitmq消费队列

flask实现使用装饰器完成rabbitmq消费队列

? 在python中最常使用的rabbitmq库应该是pika,但是一般使用pika时都是一个py文件为一个消费者,需要全部手动启动。那么如何做到像java的Springboot一样可以直接使用注解完成消费者队列的监听,这里使用到的一个第三方库是flask_rabbitmq。

1、安装并简单使用flask_rabbitmq库

添加库跟普通的库什么区别

命令:pip install flask_rabbitmq

安装完成后,可以去pushyzheng/flask-rabbitmq: A simple Python Flask combined with RabbitMQ pika library (github.com)中的example/consumer文件夹下查看例子具体怎么使用

在flask大致的使用过程:

  • 创建一个和app目录的目录结构一样包,包括init.py和demo.py(可以复制过来再修改文件名)
  • 在config.py配置rabbitmq地址和账号密码
  • 在同级的app/demo进行队列的配置和消费之代码的编写
  • 最后启动run.py就可以了

2、根据自己的需要修改源码

以上仅仅只是最简单是使用,可以根据自己的业务场景和需要修改源码,这里我看了一下源码,因为比较简单,所以我对源码进行了一些修改,具体修改了一下地方

1、将RabbitMQ.py的run和run_with_flask_app注释

因为项目中不只是集成rabbitmq,还有其他工具,因此为了确保所有的配置都能够在run.py下配置,将这两个启动方法注释(不注释也可以,总之不要调用这个启动函数)

RabbitMQ.py

run.py
在这里插入图片描述
2、RabbitMQ.py注释run函数的self._channel.queue_declare(queue=queue_name, auto_delete=True)这一行代码

由于我的队列一开始就创建好了,这里只需要充当消费者,所以在初始化的时候,并不需要创建队列,否则会报错。
在这里插入图片描述
3、最后我在RabbitMQ.py的类中添加了应答函数

我发现示例中并没有应答,处理完消息之后队列中会出现 Unacked,因此自己添加了个应答调用的函数

    def basic_ack(self, delivery_tag):
        self._channel.basic_ack(delivery_tag)

在这里插入图片描述

使用示例:

from message_queue import mq, queue
@queue(queue="sum_queue")
def sum_queue(ch, method, props, body):
   print("sum_queue => {}".format(body))
   mq.basic_ack(delivery_tag=method.delivery_tag)

当然,应答方式有改变也可以根据实际情况进行修改

最后:修改源码的方式并不建议直接在原库修改,pycharm可以在Lib/site-packages下将其复制出来在项目中再进行修改,否则换个环境就不起作用了。

  Python知识库 最新文章
Python中String模块
【Python】 14-CVS文件操作
python的panda库读写文件
使用Nordic的nrf52840实现蓝牙DFU过程
【Python学习记录】numpy数组用法整理
Python学习笔记
python字符串和列表
python如何从txt文件中解析出有效的数据
Python编程从入门到实践自学/3.1-3.2
python变量
上一篇文章      下一篇文章      查看所有文章
加:2022-09-15 01:58:19  更:2022-09-15 01:58:44 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/15 10:47:20-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码