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
