安裝
pip install flask
pip install flask_apscheduler -i https://pypi.tuna.tsinghua.edu.cn/simple/ --trusted-host pypi.tuna.tsinghua.edu.cn
使用
方法一:使用 Config 類配置時間規則
from flask import Flask from flask_apscheduler import APScheduler class Config(object): # 列表型別,如有需要可以定義多個job JOBS = [ { 'id': 'job_1', # 一個標識 'func': '__main__:job1', # 指定執行的函式 'args': (1, 2), # 傳入函式的引數 'trigger': 'interval', # 指定 定時任務的型別 'seconds': 5 # 執行的間隔時間 } ] SCHEDULER_API_ENABLED = True def job1(a, b): # 執行的定時任務的函式 print(str(a) + ' ' + str(b)) if __name__ == '__main__': app = Flask(__name__) # 例項化flask app.config.from_object(Config()) # 為例項化的 flask 引入配置 scheduler = APScheduler() # 例項化 APScheduler scheduler.init_app(app) # 把任務列表放入 flask scheduler.start() # 啟動任務列表 app.debug = True app.run(host='0.0.0.0',port=8000) # 啟動 flask
方法二:使用裝飾器
from flask import Flask from flask_apscheduler import APScheduler # 例項化 APScheduler scheduler = APScheduler() @scheduler.task('interval', id='job_1', args=(1,2),seconds=5) def job1(a, b): # 執行的定時任務的函式 print(str(a) + ' ' + str(b)) if __name__ == '__main__': app = Flask(__name__) # 例項化flask scheduler.start() # 啟動任務列表 app.debug=True app.run(host='0.0.0.0',port= 8000) # 啟動 flask
方法三:透過呼叫 flask_apscheduler 的 api (推薦)
from flask import Flask from apscheduler.schedulers.background import BackgroundScheduler # 排程器在後臺執行緒中執行,不會阻塞當前執行緒 scheduler = BackgroundScheduler() def job1(a, b): # 執行的定時任務的函式 print(str(a) + ' ' + str(b)) scheduler.add_job(func=job1, args=("1","2"),id="job_1", trigger="interval", seconds=5, replace_existing=False) ''' func:定時任務執行的函式名稱。 args:任務執行函式的位置引數,若無引數可不填 id:任務id,唯一標識,修改,刪除均以任務id作為標識 trigger:觸發器型別,引數可選:date、interval、cron replace_existing:將任務持久化至資料庫中時,此引數必須新增,值為True。並且id值必須有。不然當程式重新啟動時,任務會被重複新增。 ''' if __name__ == '__main__': app = Flask(__name__) # 例項化flask scheduler.start() # 啟動任務列表 app.debug=True app.run(host='0.0.0.0',port= 8000) # 啟動 flask
例項物件 scheduler 擁有增、刪、改、查等基本用法
新增任務:add_job() 編輯任務:modify_job() 刪除任務:remove_job(id)(刪除所有任務:remove_all_jobs()) 查詢任務:get_job(id)(查詢所有任務:get_jobs()) 暫停任務:pause_job(id) 恢復任務:resume_job(id) 執行任務:run_job(id)(立即執行,無視任務設定的時間規則)
轉:flask_apscheduler 定時任務框架 - 三隻松鼠 - 部落格園 (cnblogs.com)