Flask-flask系统运行后台轮询线程

对于有些flask系统,后台需要启动轮询线程,执行特定的任务,以下是一个简单的例子。

globals/daemon.py

python 复制代码
import threading
from app.executor.ops_service import find_and_run_ops_task_todo_in_redis


def context_run_func(app, func):
    with app.app_context():
        func(app)

def daemon_start(app):
    thread1 =threading.Thread(target=context_run_func, args=(app, find_and_run_ops_task_todo_in_redis))
    thread1.setDaemon(True)
    thread1.start()

init.py

python 复制代码
from flask import Flask
from .globals.daemon import daemon_start

flask_app = Flask(__name__)

def create_app():
    CORS(flask_app, supports_credentials=True)
    with flask_app.app_context():
        config_init(flask_app, sys_args)  # 初始化配置
        log_init(flask_app)               # 初始化日志记录
        register_blueprint(flask_app)     # 注册蓝图
        register_executor(flask_app)      # 注册异步程序执行器
        register_scheduler(flask_app)     # 注册计划任务
        daemon_start(flask_app)

run.py

python 复制代码
myapp = create_app(sys_args)

if __name__ == '__main__':
    myapp.run()

注意

  1. 不能以flask-executor启动异步执行的方式启动后台线程,会运行报错:executor需要request上下文;
  2. threading内需要传递app的上下文,否则会报错:未在app的上下文内。
相关推荐
ChinaRainbowSea2 分钟前
补充:问题:CORS ,前后端访问跨域问题
java·spring boot·后端·spring
顺丰同城前端技术团队7 分钟前
DeepSeek 国产大模型新标杆
前端·后端·程序员
YaHuiLiang21 分钟前
小微互联网公司与互联网创业公司 -- 学历之殇
前端·后端·面试
冬天的风滚草25 分钟前
Higress开源版 大规模 MCP Server 部署配置方案
后端
雨落倾城夏未凉25 分钟前
4.信号与槽
后端·qt
站大爷IP26 分钟前
Python文件操作的"保险箱":with语句深度实战指南
python
运器12332 分钟前
【一起来学AI大模型】算法核心:数组/哈希表/树/排序/动态规划(LeetCode精练)
开发语言·人工智能·python·算法·ai·散列表·ai编程
考虑考虑1 小时前
JDK9中的dropWhile
java·后端·java ee
巴里巴气3 小时前
selenium基础知识 和 模拟登录selenium版本
爬虫·python·selenium·爬虫模拟登录
19893 小时前
【零基础学AI】第26讲:循环神经网络(RNN)与LSTM - 文本生成
人工智能·python·rnn·神经网络·机器学习·tensorflow·lstm