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的扩展支持。

相关推荐
一只旭宝7 分钟前
Python 与 C/C++ 内存模型对比总结
c语言·c++·python
砚底藏山河35 分钟前
容错重试与指数退避:网络抖动手抖不再丢数据(魔码量化实战 #04)
java·数据库·python·金融
Charlie_Byte36 分钟前
Integer 缓存机制(JDK 17 源码)
后端
梨涡泥窝41 分钟前
JavaWeb——基于 Spring Boot + Vue 的图书管理系统的设计与实现
vue.js·spring boot·后端
今儿敲了吗1 小时前
02词云生成器
笔记·python
李高钢1 小时前
Python Tornado 框架入门:从零搭建你的第一个异步 Web 应用
前端·python·tornado
jsl_jsl_jsl1 小时前
LLM工具调用速记
后端
YIAN1 小时前
手撸社区后端:一套可落地的用户 - 文章 - 互动体系 MySQL 表设计与优化思路
后端·mysql
ThinkerQAQ_1 小时前
并发编程(一):先谈硬件——从 count++ 到原子性、可见性与有序性
后端
岁月如歌77861 小时前
分布式锁完全指南:从数据库到 Redisson 的演进
java·后端·架构