在 Flask 中并发执行任务

在Flask中并行执行任务,不等结果直接返回

 

from flask import Flask
from gevent import monkey; monkey.patch_all()  # 打补丁,把阻塞IO变异步
import gevent
import time

app = Flask(__name__)

def long_task(name):
    for i in range(3):
        print(f"[{name}] step {i}")
        time.sleep(1)
    print(f"[{name}] done!")

@app.route("/gevent")
def run_gevent_task():
    # 创建异步 greenlet(协程任务)
    g = gevent.spawn(long_task, "TaskA")
    # 不等待结果,直接返回响应
    return "Gevent task started!"

if __name__ == "__main__":
    # 用 gevent 启动 Flask 服务
    from gevent.pywsgi import WSGIServer
    print("Running on http://127.0.0.1:5000")
    http_server = WSGIServer(("0.0.0.0", 5000), app)
    http_server.serve_forever()

 

posted on 2025-10-10 11:49  星河赵  阅读(8)  评论(0)    收藏  举报

导航