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,其他的類(lèi)似。
使用裝飾器定時(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自動(dòng)定時(shí)任務(wù)schedule庫(kù)的使用方法
- Python apscheduler實(shí)現(xiàn)定時(shí)任務(wù)的方法詳解
- Python高效定時(shí)任務(wù)處理APScheduler庫(kù)深入學(xué)習(xí)
- Python?Apschedule定時(shí)任務(wù)框架的用法詳解
- Python第三方模塊apscheduler安裝和基本使用
- python定時(shí)任務(wù)schedule庫(kù)用法詳細(xì)講解
- Python中schedule模塊關(guān)于定時(shí)任務(wù)使用方法
- Python定時(shí)任務(wù)框架APScheduler安裝使用詳解
- 最新Python?APScheduler?定時(shí)任務(wù)詳解
- Python中schedule擴(kuò)展的具體使用
相關(guān)文章
Python之freegames?零代碼的22個(gè)小游戲集合
這篇文章主要介紹了,Python之freegames?零代碼的22個(gè)小游戲集合,文章內(nèi)容詳細(xì),簡(jiǎn)單易懂,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2023-01-01Python實(shí)現(xiàn)變量數(shù)值交換及判斷數(shù)組是否含有某個(gè)元素的方法
這篇文章主要介紹了Python實(shí)現(xiàn)變量數(shù)值交換及判斷數(shù)組是否含有某個(gè)元素的方法,涉及Python字符串與數(shù)組的相關(guān)賦值、判斷操作技巧,需要的朋友可以參考下2017-09-09Python實(shí)現(xiàn)合并兩個(gè)有序鏈表的方法示例
這篇文章主要介紹了Python實(shí)現(xiàn)合并兩個(gè)有序鏈表的方法,涉及Python操作鏈表節(jié)點(diǎn)的遍歷、判斷、添加等相關(guān)操作技巧,需要的朋友可以參考下2019-01-01python分布式爬蟲(chóng)中消息隊(duì)列知識(shí)點(diǎn)詳解
在本篇文章里小編給大家整理的是python分布式爬蟲(chóng)中消息隊(duì)列知識(shí)點(diǎn)詳解內(nèi)容,有興趣的朋友們可以參考下。2020-11-11numpy中以文本的方式存儲(chǔ)以及讀取數(shù)據(jù)方法
今天小編就為大家分享一篇numpy中以文本的方式存儲(chǔ)以及讀取數(shù)據(jù)方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-06-06Python中的類(lèi)屬性與實(shí)例屬性區(qū)別詳解
這篇文章主要介紹了Python中的類(lèi)屬性與實(shí)例屬性區(qū)別詳解,類(lèi)屬性是在類(lèi)中定義的屬性,它是和這個(gè)類(lèi)所綁定的,這個(gè)類(lèi)中的所有對(duì)象都可以訪問(wèn),實(shí)例屬性是與類(lèi)的實(shí)例相關(guān)聯(lián)的數(shù)據(jù)值,是這個(gè)實(shí)例私有的,需要的朋友可以參考下2023-08-08