flask apscheduler 定時任務框架

2022-06-06 08:27:11 字數 2770 閱讀 8340

flask 框架下定時任務通常使用 flask_apscheduler 第三方庫。flask_apscheduler 功能非常強大,能滿足各種定時任務的需求。

pip3 install flask_apscheduler
1.下面這段 example 是官網上的,我加了些注釋,方便學習。

from flask import

flask

from flask_apscheduler import

apscheduler

class

config(object):

jobs =[

]scheduler_api_enabled =true

def job1(a, b): #

執行的定時任務的函式

print(str(a) + '

' +str(b))

if__name__ == '

__main__':

例項化flask

為例項化的 flask 引入配置

scheduler = apscheduler() #

例項化 apscheduler

#it is also possible to enable the api directly

#scheduler.api_enabled = true

把任務列表放入 flask

scheduler.start() #

啟動任務列表

#啟動 flask

2.多個定時任務

config 類的屬性 jobs 是列表,可以定義多個定時任務,如下

from flask import

flask

from flask_apscheduler import

apscheduler

class

config(object):

jobs =[,]

scheduler_api_enabled =true

defjob1(a, b):

print(str(a) + '

' +str(b))

defjob2():

print('

hello world!')

if__name__ == '

__main__':

) scheduler =apscheduler()

#it is also possible to enable the api directly

#scheduler.api_enabled = true

scheduler.start()

view code

當你開始定時任務時,需要為定時策略選擇乙個觸發器(設定  class config 中 trigger 的值)。flask_apscheduler 提供了三種型別的觸發器。

一、date  最基本的一種排程,指定固定時間,只執行一次

class

config(object):

jobs =[

]scheduler_api_enabled = true

二、interval  通過設定時間間隔來執行定時任務

class

config(object):

jobs =[

]scheduler_api_enabled = true

三 、cron 通過設定相對時間來執行定時任務

class

config(object):

jobs =[

]scheduler_api_enabled = true

開發好定時指令碼後部署到 k8s,發現報錯 timezone offset does not match system offset: 0 != 28800. please, check your config files. 

本地執行好好的,為什麼伺服器上就報錯了呢?

原因是系統的時區和**執行的時區不一致導致的。解決方法是在初始化 apscheduler() 的時候加上時區:backgroundscheduler(timezone="asia/shanghai")

'''

...'''

from apscheduler.schedulers.background import

backgroundscheduler

class

config:

jobs = ['''

...'''

]scheduler_timezone= 'asia/shanghai''''

...'''

if__name__ == '

__main__

':scheduler= apscheduler(backgroundscheduler(timezone="asia/shanghai"))scheduler.start()

linux定時任務 at定時任務

at命令是一次性定時計畫任務,at的守護程序atd會以後臺模式執行,檢查作業佇列來執行作業。atd守護程序會檢查系統上的乙個特殊目錄來獲取at命令的提交的作業,預設情況下,atd守護程序每60秒檢查一次目錄,有作業時,會檢查作業執行時間,如果時間與當前時間匹配,則執行此作業。注意 at命令是一次性定...

at定時任務

at的守護程序每60秒檢查一次作業佇列,有作業時檢查作業,時間恰好達到,則執行作業。前提 保證atd程序已經啟動,檢查atd程序是否啟動 ps ef grep atd。atd的命令格式 at 選項 時間 ctrl d 結束at命令的輸入。選項 m 任務完成後給使用者傳送郵件,沒有標準輸出。i atg...

at定時任務

1 at是只執行一次,執行完後任務刪除。at的守護程序atd會以後臺模式執行,檢查作業佇列來執行。2 預設 atd每60秒巡邏一次,有作業時候,檢查作業時間,如果和當前時間一樣,就執行任務 3 在使用at命令的時候,一定要保證他的守護者atd程序的啟動。用ps ef grep atd來檢視atd是否...