Python定時(shí)庫Apscheduler的簡單使用
在Python中需要執(zhí)行定時(shí)任務(wù),可以使用Apscheduler。
Apscheduler是基于Quartz的Python定時(shí)任務(wù)框架,功能上跟Quartz一致,使用上跟Quartz也幾乎一致。
核心的四個(gè)部分:
①觸發(fā)器(trigger)、②作業(yè)存儲(chǔ)(job store)、③執(zhí)行器(executor)、④調(diào)度器(scheduler)
安裝依賴:
pip install apscheduler
間隔時(shí)間調(diào)度:
from apscheduler.schedulers.blocking import BlockingScheduler
from datetime import datetime
sched = BlockingScheduler()
def test_job():
print(f'{datetime.now():%H:%M:%S} Test job')
if __name__ == '__main__':
sched.add_job(test_job, 'interval', id='test', seconds=5)
sched.start()
也可以使用裝飾器:
from apscheduler.schedulers.blocking import BlockingScheduler
from datetime import datetime
sched = BlockingScheduler()
def test_job():
print(f'{datetime.now():%H:%M:%S} Test job')
@sched.scheduled_job('interval', seconds=5)
def test_decorator_job():
print(f'{datetime.now():%H:%M:%S} Test decorator job')
if __name__ == '__main__':
sched.add_job(test_job, 'interval', id='test', seconds=5)
sched.start()
運(yùn)行結(jié)果:

BlockingScheduler()是調(diào)度器中的一種調(diào)度器
sched.add_job()是添加作業(yè)
sched.start()是開始任務(wù)
定時(shí)調(diào)度:
定時(shí)調(diào)度使用cron表達(dá)式進(jìn)行,這里也帶參數(shù)執(zhí)行:
from apscheduler.schedulers.blocking import BlockingScheduler
from datetime import datetime
scheduler = BlockingScheduler()
def test_args(x):
print (f'{datetime.now():%H:%M:%S} Test cron job', x)
if __name__ == '__main__':
scheduler.add_job(test_args, 'cron', args=('cron test',), second='*/5')
scheduler.start()
時(shí)間參數(shù)設(shè)置如下:
year (int|str) – 年,4位數(shù)字 month (int|str) – 月 (范圍1-12) day (int|str) – 日 (范圍1-31) week (int|str) – 周 (范圍1-53) day_of_week (int|str) – 周內(nèi)第幾天或者星期幾 (范圍0-6 或者 mon,tue,wed,thu,fri,sat,sun) hour (int|str) – 時(shí) (范圍0-23) minute (int|str) – 分 (范圍0-59) second (int|str) – 秒 (范圍0-59) start_date (datetime|str) – 最早開始日期(包含) end_date (datetime|str) – 最晚結(jié)束時(shí)間(包含) timezone (datetime.tzinfo|str) – 指定時(shí)區(qū)
接下來說一下其中的調(diào)度器:
BlockingScheduler:適用于調(diào)度程序是進(jìn)程中唯一運(yùn)行的進(jìn)程,調(diào)用start函數(shù)會(huì)阻塞當(dāng)前線程,不能立即返回。 BackgroundScheduler:適用于調(diào)度程序在應(yīng)用程序的后臺(tái)運(yùn)行,調(diào)用start后主線程不會(huì)阻塞。 AsyncIOScheduler:適用于使用了asyncio模塊的應(yīng)用程序。 GeventScheduler:適用于使用gevent模塊的應(yīng)用程序。 TwistedScheduler:適用于構(gòu)建Twisted的應(yīng)用程序。 QtScheduler:適用于構(gòu)建Qt的應(yīng)用程序。
其中使用得比較多的是前三種調(diào)度器。
刪除任務(wù):
scheduler.remove_job('task_id')
停止任務(wù):
scheduler.pause_job('task_id')
恢復(fù)任務(wù):
scheduler.resume_job('task_id')
立即執(zhí)行任務(wù)next_run_time:
scheduler.add_job(
test_job,
'interval',
minutes=5,
next_run_time=datetime.datetime.now()
)
到此這篇關(guān)于Python定時(shí)庫Apscheduler的簡單使用的文章就介紹到這了,更多相關(guān)Python定時(shí)庫Apscheduler使用內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- Python APScheduler執(zhí)行使用方法詳解
- python 基于Apscheduler實(shí)現(xiàn)定時(shí)任務(wù)
- python定時(shí)任務(wù)apscheduler的詳細(xì)使用教程
- python?包之?APScheduler?定時(shí)任務(wù)
- 最新Python?APScheduler?定時(shí)任務(wù)詳解
- Python flask框架定時(shí)任務(wù)apscheduler應(yīng)用介紹
- Python實(shí)現(xiàn)定時(shí)任務(wù)利器之a(chǎn)pscheduler使用詳解
- Python高效定時(shí)任務(wù)處理APScheduler庫深入學(xué)習(xí)
- Python apscheduler實(shí)現(xiàn)定時(shí)任務(wù)的方法詳解
- Python輕量級(jí)定時(shí)任務(wù)調(diào)度APScheduler的使用
相關(guān)文章
pytorch中Schedule與warmup_steps的用法說明
這篇文章主要介紹了pytorch中Schedule與warmup_steps的用法說明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-05-05
python中cv2.imdecode()與cv2.imencode()的使用小結(jié)
本文介紹了cv2.imencode()和cv2.imdecode()函數(shù)的使用,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2025-01-01
python通過函數(shù)名調(diào)用函數(shù)的幾種方法總結(jié)
今天帶大家學(xué)習(xí)的是怎么使用python通過函數(shù)名調(diào)用函數(shù),文中對(duì)python通過函數(shù)名調(diào)用函數(shù)的幾種方法有非常詳細(xì)的介紹,需要的朋友可以參考下2021-06-06
Python中re正則匹配數(shù)據(jù)的實(shí)現(xiàn)
在Python中,可以使用re模塊來使用正則表達(dá)式,本文主要介紹了Python中re正則匹配數(shù)據(jù)的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2024-04-04
Python爬蟲之超級(jí)鷹驗(yàn)證碼應(yīng)用
眾所周知python是一個(gè)很強(qiáng)大的語言,它擁有眾多的庫,今天我嘗試了使用超級(jí)鷹第三方平臺(tái)進(jìn)行驗(yàn)證碼的開發(fā),需要的朋友可以參考下2022-08-08
Python?OpenCV實(shí)現(xiàn)3種濾鏡效果實(shí)例
opencv是一個(gè)很強(qiáng)大的庫,支持多個(gè)編程語言,下面這篇文章主要給大家介紹了關(guān)于Python?OpenCV實(shí)現(xiàn)3種濾鏡效果的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),需要的朋友可以參考下2022-04-04
python學(xué)習(xí)pymongo模塊的使用方法
這篇文章主要介紹了python學(xué)習(xí)pymongo模塊的使用方法,pymongo模塊是python操作mongo數(shù)據(jù)的第三方模塊,總結(jié)一下常用到的簡單用,需要的小伙伴可以參考一下2022-09-09
Python使用BeautifulSoup進(jìn)行頁面解析
在Python中,我們可以使用BeautifulSoup庫來解析網(wǎng)頁,BeautifulSoup提供了簡單而強(qiáng)大的API,使得解析網(wǎng)頁變得輕松而高效,下面小編就來為大家詳細(xì)講講BeautifulSoup解析網(wǎng)頁的具體操作吧2023-09-09

