flask 框架下定時任務通常使用 flask_apscheduler 第三方庫。flask_apscheduler 功能非常強大,能滿足各種定時任務的需求。
1.下面這段 example 是官網上的,我加了些注釋,方便學習。pip3 install flask_apscheduler
from flask import2.多個定時任務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
config 類的屬性 jobs 是列表,可以定義多個定時任務,如下
from flask importview codeflask
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()
當你開始定時任務時,需要為定時策略選擇乙個觸發器(設定 class config 中 trigger 的值)。flask_apscheduler 提供了三種型別的觸發器。
一、date 最基本的一種排程,指定固定時間,只執行一次
class二、interval 通過設定時間間隔來執行定時任務config(object):
jobs =[
]scheduler_api_enabled = true
class三 、cron 通過設定相對時間來執行定時任務config(object):
jobs =[
]scheduler_api_enabled = true
class開發好定時指令碼後部署到 k8s,發現報錯 timezone offset does not match system offset: 0 != 28800. please, check your config files.config(object):
jobs =[
]scheduler_api_enabled = true
本地執行好好的,為什麼伺服器上就報錯了呢?
原因是系統的時區和**執行的時區不一致導致的。解決方法是在初始化 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是否...