Python flask框架定時(shí)任務(wù)apscheduler應(yīng)用介紹
flask-apscheduler將apscheduler移植到了flask應(yīng)用中,使得在flask中可以非常方便的使用定時(shí)任務(wù)了,除此之外,它還有如下幾個(gè)特性
- 根據(jù)
Flask配置加載調(diào)度器配置 - 根據(jù)
Flask配置加載任務(wù)調(diào)度器 - 允許指定服務(wù)器運(yùn)行任務(wù)
- 提供
RESTful API管理任務(wù),也就是遠(yuǎn)程管理任務(wù) - 為
RESTful API提供認(rèn)證
下載安裝
pip install flask-apscheduler
基本使用
flask-apscheduler的相關(guān)配置,我們會(huì)將它和其它擴(kuò)展一起,放在應(yīng)用的配置里
class Config(object):
// 配置項(xiàng)
JOBS = [
{
'id': 'job1',
'func': 'run:add',
'args': (1, 2),
'trigger': 'interval',
'seconds': 3
}
]
SCHEDULER_API_ENABLED = True
def add(a, b):
print(a+b)JOBS列表的每一個(gè)元素表示一個(gè)定時(shí)任務(wù),列子中只有一個(gè)interval任務(wù),表示每隔3秒運(yùn)行一次函數(shù)add。func指定調(diào)用的函數(shù),args表示傳入函數(shù)的參數(shù),trigger表示啟動(dòng)方式,常用的有兩種,分別是trigger和cron。
上邊我們?cè)O(shè)置了SCHEDULER_API_ENABLED = True,可以通過(guò)訪問(wèn)http://127.0.0.1:5000/scheduler,其中scheduler是默認(rèn)的RESTful API前綴

通過(guò)查看源碼,可以發(fā)現(xiàn)flask-apscheduler提供了以下的接口
def _load_api(self):
"""
Add the routes for the scheduler API.
"""
self._add_url_route('get_scheduler_info', '', api.get_scheduler_info, 'GET')
self._add_url_route('add_job', '/jobs', api.add_job, 'POST')
self._add_url_route('get_job', '/jobs/<job_id>', api.get_job, 'GET')
self._add_url_route('get_jobs', '/jobs', api.get_jobs, 'GET')
self._add_url_route('delete_job', '/jobs/<job_id>', api.delete_job, 'DELETE')
self._add_url_route('update_job', '/jobs/<job_id>', api.update_job, 'PATCH')
self._add_url_route('pause_job', '/jobs/<job_id>/pause', api.pause_job, 'POST')
self._add_url_route('resume_job', '/jobs/<job_id>/resume', api.resume_job, 'POST')
self._add_url_route('run_job', '/jobs/<job_id>/run', api.run_job, 'POST')如果需要查看當(dāng)前運(yùn)行的所有定時(shí)任務(wù),則請(qǐng)求http://127.0.0.1:5000/scheduler/jobs即可。
trigger啟動(dòng)方式
trigger表示間隔啟動(dòng),在trigger方式中,使用seconds配置間隔多久啟動(dòng)一次,單位是秒。
cron啟動(dòng)方式
cron表示定時(shí)啟動(dòng)
class Config(object):
JOBS = [
{
'id': 'job1',
'func': 'scheduler:task',
'args': (1, 2),
'trigger': 'cron',
'day': '*',
'hour': '13',
'minute': '16',
'second': '20'
}
]
SCHEDULER_API_ENABLED = True
def task(a, b):
print(str(datetime.datetime.now()) + ' execute task ' + '{}+{}={}'.format(a, b, a + b))該配置項(xiàng)則表示每天的13點(diǎn)16分20秒啟動(dòng)一次。*表示全部。
有關(guān)常用的cron配置有:
day
- 表示天
hour
- 表示小時(shí)
minute
- 表示分鐘
second
- 表示秒
week
- 周
day_of_week
- 星期幾,如星期天使用sun,星期五使用fri,其他的類似。
使用裝飾器定時(shí)啟動(dòng)任務(wù)
from flask import Flask
from flask_apscheduler import APScheduler
import datetime
class Config(object):
SCHEDULER_API_ENABLED = True
scheduler = APScheduler()
# interval examples
@scheduler.task('interval', id='do_job_1', seconds=30, misfire_grace_time=900)
def job1():
print(str(datetime.datetime.now()) + ' Job 1 executed')表示每隔30秒調(diào)用一次job1函數(shù)。
到此這篇關(guān)于Python flask框架定時(shí)任務(wù)apscheduler應(yīng)用介紹的文章就介紹到這了,更多相關(guān)Python flask apscheduler內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- Python輕量級(jí)定時(shí)任務(wù)調(diào)度APScheduler的使用
- Python apscheduler實(shí)現(xiàn)定時(shí)任務(wù)的方法詳解
- Python實(shí)現(xiàn)定時(shí)任務(wù)利器之a(chǎn)pscheduler使用詳解
- Python定時(shí)任務(wù)框架APScheduler安裝使用詳解
- 最新Python?APScheduler?定時(shí)任務(wù)詳解
- Python使用apscheduler模塊設(shè)置定時(shí)任務(wù)的實(shí)現(xiàn)
- 從入門到精通詳解Python APScheduler實(shí)現(xiàn)定時(shí)任務(wù)的完整指南
相關(guān)文章
Python實(shí)現(xiàn)視頻分解成圖片+圖片合成視頻
這篇文章主要介紹了如何利用Python實(shí)現(xiàn)視頻分解成圖片以及將圖片合成為視頻,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以了解一下2022-04-04
python用pickle模塊實(shí)現(xiàn)“增刪改查”的簡(jiǎn)易功能
本篇文章主要介紹了python用pickle模塊實(shí)現(xiàn)“增刪改查”的簡(jiǎn)易功能,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下。2017-06-06
python去除刪除數(shù)據(jù)中\(zhòng)u0000\u0001等unicode字符串的代碼
這篇文章主要介紹了python去除刪除數(shù)據(jù)中\(zhòng)u0000\u0001等unicode字符串的代碼,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-03-03
Python可變參數(shù)*args和**kwargs用法實(shí)例小結(jié)
這篇文章主要介紹了Python可變參數(shù)*args和**kwargs用法,結(jié)合實(shí)例形式總結(jié)分析了Python中可變參數(shù)*args和**kwargs的功能、區(qū)別與具體使用技巧,需要的朋友可以參考下2018-04-04
Python中利用pyqt5制作指針鐘表顯示實(shí)時(shí)時(shí)間(指針時(shí)鐘)
這篇文章主要介紹了Python中利用pyqt5制作指針鐘表顯示實(shí)時(shí)時(shí)間(動(dòng)態(tài)指針時(shí)鐘),本文通過(guò)示例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-02-02
Python輸入輸出從鍵盤到文件實(shí)戰(zhàn)全面指南
這篇文章主要為大家介紹了Python輸入輸出從鍵盤到文件實(shí)戰(zhàn)全面指南,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-11-11
詳解 Python 讀寫(xiě)XML文件的實(shí)例
這篇文章主要介紹了詳解 Python 讀寫(xiě)XML文件的實(shí)例的相關(guān)資料,Python 生成XML文件和Python 讀取XML 的實(shí)例,需要的朋友可以參考下2017-08-08
Python+tkinter實(shí)現(xiàn)高清圖片保存
作為愛(ài)玩電腦的你是不是也需要經(jīng)常更換一下自己的電腦壁紙呢?但是在網(wǎng)上有很多心儀的圖片想要保存下來(lái),如果一張張的去保存那效率又低。所以本文用Python寫(xiě)一個(gè)保存圖片的功能,把我們的圖片給保存到我們的電腦,需要的可以參考一下2022-03-03

