python中flask实现异步
时间: 2025-01-10 20:38:09 浏览: 31
实现 Python Flask 框架中的异步处理
Flask 框架本质上是一个同步框架,不过可以借助其他工具和技术来支持异步操作。一种常见的做法是利用 concurrent.futures
库提供的线程池或进程池功能来进行后台任务的并发执行[^3]。
利用 ThreadPoolExecutor
进行异步任务调度
通过引入 concurrent.futures.ThreadPoolExecutor
可以有效地管理和分配多线程资源,在不阻塞主线程的情况下完成耗时较长的任务:
from concurrent.futures import ThreadPoolExecutor
import time
from flask import Flask, jsonify
app = Flask(__name__)
executor = ThreadPoolExecutor(10)
def background_task(n):
"""模拟一个长时间运行的任务"""
delay = 2
print(f"Task {n} starts")
time.sleep(delay)
print(f"Task {n} completes after {delay}s")
@app.route('/async')
def run_async():
for i in range(5):
executor.submit(background_task, (i))
return 'Started tasks!', 200
此代码片段展示了如何创建一个简单的 Web API 接口 /async
当访问该接口时会启动多个后台任务而不必等待它们全部结束即可返回响应给客户端。
另外值得注意的是,虽然上述例子使用了基于线程的方式来做异步处理,但在某些场景下可能还需要考虑更复杂的模型比如协程(coroutine),这通常涉及到像 asyncio 或者第三方扩展如 Quart(完全兼容 Flask 的异步版本)这样的技术栈[^1]。
相关推荐


















