flask-apscheduler 定时任务被执行两次

定时任务没有被多次调用,事实上如果多次调用的话,flask-apscheduler会抛出异常。

但一开始任务还是按时执行一次,重启flask或者修改部分代码后,就发送定时任务一次执行两次了。

之所以会发生这种情况,是因为在debug模式下的Flask会生成一个子进程。

这样每当代码更改时,它就可以重新启动该进程,新的子进程会初始化并启动一个新的APScheduler,这就是为什么定时任务会执行两次的原因。

需要设置debug=False,或者设置use_reloader=Flase

python 复制代码
if __name__ == "__main__":
    app = create_app() 
    app.run(debug=False, ...)

目前在flask-apscheduler中还没有看到有效的解决方法。

个别方案是检测当前进程是否是子进程,如果是则不允许APScheduler启动。但这样增加了额外操作了复杂度。

要么就不用flask-apscheduler模块而改用其他没有与flask集成的模块,因为flask-apscheduler是flask对apscheduler的扩展支持。

相关推荐
hmbbcsm10 小时前
练习python题目小记(六)
开发语言·python
wow_DG10 小时前
【Python✨】VS Code 秒开 Python 类型检查:一招 mypy + settings.json 让你的 Bug 原地现形!
python·json·bug
海边夕阳200610 小时前
主流定时任务框架对比:Spring Task/Quartz/XXL-Job怎么选?
java·后端·spring·xxl-job·定时任务·job
流水不腐51811 小时前
若依系统集成kafka
后端
allbs11 小时前
spring boot项目excel导出功能封装——3.图表导出
spring boot·后端·excel
Aspect of twilight11 小时前
LeetCode华为大模型岗刷题
python·leetcode·华为·力扣·算法题
空影星11 小时前
高效追踪电脑使用时间,Tockler助你优化时间管理
python·django·flask
Logan Lie11 小时前
Web服务监听地址的取舍:0.0.0.0 vs 127.0.0.1
运维·后端
程序员西西11 小时前
SpringBoot整合Apache Spark实现一个简单的数据分析功能
java·后端
LiLiYuan.11 小时前
【Lombok库常用注解】
java·开发语言·python