Flask添加timeloop定时后台任务遇应用上下文错误求助
Flask定时任务上下文问题排查记录
背景
- 开发Flask应用,需实现每10分钟执行一次的后台定时任务
- 已通过
poetry add timeloop引入timeloop模块,代码结构参考Flasky项目
两次尝试及遇到的问题
方案一
- 在
app/__init__.py的create_app函数中初始化并启动Timeloop实例,将实例存入app.config - 在工具文件中通过
current_app调用注册任务,触发RuntimeError: Working outside of application context
方案二
- 在
app/models.py中定义全局Timeloop实例,在create_app中启动该实例 - 任务函数内尝试使用
current_app.app_context(),应用可正常启动,但定时任务线程仍抛出相同的上下文错误,推测问题由线程隔离导致
内容的提问来源于stack exchange,提问作者Taavi Ansper
相关产品推荐
相关产品推荐

