Flask 异步执行耗时任务

使用线程的方式实现异步执行任务

复制代码
# -*- coding: utf-8 -*-
from flask import Flask, jsonify
from time import sleep
from concurrent.futures import ThreadPoolExecutor

# 创建线程池执行器
executor = ThreadPoolExecutor(2)
app = Flask(__name__)

# 耗时任务是否完成(推荐redis存储 唯一标识)
gl = True


@app.route('/')
def run_jobs():
    # 判断是否需要执行耗时任务
    global gl
    if gl:
        print "submit"
        executor.submit(long_task, 'hello', 123)
    else:
        gl = True
        return 'long task complete.'
    return 'long task running.'


# 耗时任务
def long_task(arg1, arg2):
    print "args: %s %s!" % (arg1, arg2)
    sleep(20)
    print "Task is done!"
    global gl
    gl = False


if __name__ == '__main__':
    app.run(debug=True, host='0.0.0.0', port=5000)
复制代码

 

posted @   你的小可爱吖  阅读(2630)  评论(1编辑  收藏  举报
编辑推荐:
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
点击右上角即可分享
微信分享提示