flask-apscheduler重复执行两次函数

flask-apscheduler 使用方法:
1.安装flask-apscheduler

2.实例化并绑定app

3.config.py 配置文件设置:

id就是这个任务的编号,
func 是需要执行的函数。
args是函数需要的参数。
trigger 有3种:date(一次性任务),cron(定时任务),interval(循环任务)
interval循环间隔调度,参数如下:

weeks (int) – 间隔几周 
days (int) – 间隔几天 
hours (int) – 间隔几小时 
minutes (int) – 间隔几分钟 
seconds (int) – 间隔多少秒 
start_date (datetime|str) – 开始日期 
end_date (datetime|str) – 结束日期 
timezone (datetime.tzinfo|str) – 时区 

cron定时任务,参数如下:

year (int|str) – 年,4位数字 
month (int|str) – 月 (范围1-12) 
day (int|str) – 日 (范围1-31) 
week (int|str) – 周 (范围1-53) 
day_of_week (int|str) – 周内第几天或者星期几 (范围0-6 或者 mon,tue,wed,thu,fri,sat,sun) 
hour (int|str) – 时 (范围0-23) 
minute (int|str) – 分 (范围0-59) 
second (int|str) – 秒 (范围0-59) 
start_date (datetime|str) – 最早开始日期(包含) 
end_date (datetime|str) – 最晚结束时间(包含) 
timezone (datetime.tzinfo|str) – 指定时区 

我试了一下,我设置的是每天的10点30-31分内间隔20秒执行一次函数,minute 设置的是30-31,注意31是包含的,也就是执行了2分钟,20秒一次也就是执行了6次。
在调试模式下,Flask的重新加载器将加载烧瓶应用程序两次。因此flask总共有两个进程. 重新加载器监视文件系统的更改并在不同的进程中启动真实应用程序
有几种方法可以解决这个问题。我发现效果最好的是禁用重新加载器:
app.run(use_reloader=False)

或者关闭调试debug=False

原文地址:https://www.cnblogs.com/plusUltra/p/10942004.html