Flask+gevent 实现异步请求处理

Flask+gevent 实现异步请求处理

使用flask+gevent实现异步请求处理,首先gevent库要使用猴子布丁,使底层I/O支持异步处理。

1 使用猴子补丁

python 复制代码
from gevent import monkey
monkey.patch_all()

使用猴子补丁后, 内建函数time.sleep()已经魔改成gevent.sleep(), 这两个函数的效果是一样的。

2 相同的url请求无法实现异步处理

例如同时发出的两个请求,url相同是不可能实现异步处理的。

req1: /api/v2.1/test

req2: /api/v2.1/test

url不同的情况, 如下

req1: /api/v2.1/test

req2: /api/v2.1/test?s=1

req1: /api/v2.1/test

req2: /api/v2.1/test2

有可能实现网络请求的异步处理。

3 url请求处理中包含异步函数

在url请求的处理代码中包含异步函数。 例如

python 复制代码
time.sleep(0.1)

gevent.sleep(0.2)
相关推荐
mortimer5 分钟前
Traceback 模块:`format_exc` 和 `format_exception` 傻傻分不清
python
Cherry Zack1 小时前
了解Django模型,从基础到实战
python·学习·django
青柠编程1 小时前
基于Spring Boot的竞赛管理系统架构设计
java·spring boot·后端
qq7422349841 小时前
语音识别:PyAudio、SoundDevice、Vosk、openai-whisper、Argos-Translate、FunASR(Python)
python·whisper·语音识别
曾经的三心草1 小时前
OpenCV2-图像基本操作-阈值与平滑处理-形态学-梯度运算
python·opencv
xiangzhihong82 小时前
Spring Boot实现文字转语音功能
开发语言·python
s9123601012 小时前
【rust】 pub(crate) 的用法
开发语言·后端·rust
天才测试猿3 小时前
postman使用总结
自动化测试·软件测试·python·测试工具·测试用例·接口测试·postman
可触的未来,发芽的智生3 小时前
新奇特:神经网络烘焙坊(下),万能配方的甜蜜奥义
人工智能·python·神经网络·算法·架构
计算机毕业设计指导3 小时前
基于Django的内部网络资产发现与管理工具
网络·python·网络安全·django