網(wǎng)站別人給我做的備案 我能更改嗎外包推廣服務(wù)
Flask-APScheduler描述:
Flask-APScheduler 是一個 Flask 擴展,增加了對 APScheduler 的支持。?
APScheduler 有三個內(nèi)置的調(diào)度系統(tǒng)可供您使用:
-
Cron 式調(diào)度(可選開始/結(jié)束時間)
-
基于間隔的執(zhí)行(以偶數(shù)間隔運行作業(yè),可選開始/結(jié)束時間)
-
一次性延遲執(zhí)行(在設(shè)定的日期/時間運行一次作業(yè))
1.安裝 flask_apscheduler 庫
pip install flask_apscheduler
2.app.py中的代碼
2.1初始化APScheduler
# 創(chuàng)建Flask應(yīng)用
app = Flask(__name__)
# 初始化APScheduler
scheduler = APScheduler()
?2.2使用方式
描述這里使用cron表達式
cron表達式生成器地址:https://cron.ciding.cc/
方式一: 硬編碼方式使用
# 創(chuàng)建Flask應(yīng)用
app = Flask(__name__)
# 初始化APScheduler
scheduler = APScheduler()# 方式一硬編碼;
# 這些代碼也可以放在if __name__ == '__main__':內(nèi),與調(diào)試運行方式有關(guān),
# 1.flask服務(wù)方式運行不會走if __name__ == '__main__':內(nèi)代碼;
# 2.以Python文件(app.py)方式運行會走if __name__ == '__main__':內(nèi)代碼;
scheduler.add_job(func=MyService.my_job, id='my_job', trigger='cron', second='0/5')
scheduler.init_app(app=app)
scheduler.start()
方式二: 讀取配置方式使用?
配置中代碼?
class Config:JOBS = [{'id': 'job1','func': 'app:MyService.my_job', # 注意這里的格式,app 是 Flask 應(yīng)用對象的名稱(app.py),: 后面是任務(wù)函數(shù)名'trigger': 'cron',# 'day_of_week': '0-6', # 每天執(zhí)行# 'hour': 18, # 18 點執(zhí)行# 'inute': 30, # 30 分執(zhí)行# 'econd': 5 # 0 秒執(zhí)行'second': '0/5'}# ,# {# 'id': 'job2',# 'func': task2, # 也可以直接使用函數(shù)名# 'trigger': 'interval',# 'econds': 30 # 每隔 30 秒執(zhí)行一次# }]SCHEDULER_API_ENABLED = True
# 創(chuàng)建Flask應(yīng)用
app = Flask(__name__)
# 初始化APScheduler
scheduler = APScheduler()# 方式一硬編碼
# scheduler.add_job(func=MyService.my_job, id='my_job', trigger='cron', second='0/5')
# 方式二讀取配置
app.config.from_object(Config())
scheduler.init_app(app=app)
scheduler.start()
3.my_service.py中(MyService類)代碼
from datetime import datetimefrom flask import Flaskclass MyService:@classmethoddef my_job(cls):print(f"my_job,當前時間{datetime.now()}")
4.項目整體結(jié)構(gòu)
5.運行效果
具體代碼
https://gitee.com/jxzcode_admin/flask-project.git
參考資料
https://blog.csdn.net/m0_48770520/article/details/130735727