Python定時庫Apscheduler的簡單使用
在Python中需要執(zhí)行定時任務,可以使用Apscheduler。
Apscheduler是基于Quartz的Python定時任務框架,功能上跟Quartz一致,使用上跟Quartz也幾乎一致。
核心的四個部分:
①觸發(fā)器(trigger)、②作業(yè)存儲(job store)、③執(zhí)行器(executor)、④調度器(scheduler)
安裝依賴:
pip install apscheduler
間隔時間調度:
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()
運行結果:
BlockingScheduler()是調度器中的一種調度器
sched.add_job()是添加作業(yè)
sched.start()是開始任務
定時調度:
定時調度使用cron表達式進行,這里也帶參數(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ù)設置如下:
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) – 周內第幾天或者星期幾 (范圍0-6 或者 mon,tue,wed,thu,fri,sat,sun) hour (int|str) – 時 (范圍0-23) minute (int|str) – 分 (范圍0-59) second (int|str) – 秒 (范圍0-59) start_date (datetime|str) – 最早開始日期(包含) end_date (datetime|str) – 最晚結束時間(包含) timezone (datetime.tzinfo|str) – 指定時區(qū)
接下來說一下其中的調度器:
BlockingScheduler:適用于調度程序是進程中唯一運行的進程,調用start函數(shù)會阻塞當前線程,不能立即返回。 BackgroundScheduler:適用于調度程序在應用程序的后臺運行,調用start后主線程不會阻塞。 AsyncIOScheduler:適用于使用了asyncio模塊的應用程序。 GeventScheduler:適用于使用gevent模塊的應用程序。 TwistedScheduler:適用于構建Twisted的應用程序。 QtScheduler:適用于構建Qt的應用程序。
其中使用得比較多的是前三種調度器。
刪除任務:
scheduler.remove_job('task_id')
停止任務:
scheduler.pause_job('task_id')
恢復任務:
scheduler.resume_job('task_id')
立即執(zhí)行任務next_run_time:
scheduler.add_job( test_job, 'interval', minutes=5, next_run_time=datetime.datetime.now() )
到此這篇關于Python定時庫Apscheduler的簡單使用的文章就介紹到這了,更多相關Python定時庫Apscheduler使用內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
- Python APScheduler執(zhí)行使用方法詳解
- python 基于Apscheduler實現(xiàn)定時任務
- python定時任務apscheduler的詳細使用教程
- python?包之?APScheduler?定時任務
- 最新Python?APScheduler?定時任務詳解
- Python flask框架定時任務apscheduler應用介紹
- Python實現(xiàn)定時任務利器之apscheduler使用詳解
- Python高效定時任務處理APScheduler庫深入學習
- Python apscheduler實現(xiàn)定時任務的方法詳解
- Python輕量級定時任務調度APScheduler的使用
相關文章
解決python 輸出到csv 出現(xiàn)多空行的情況
這篇文章主要介紹了解決python 輸出到csv 出現(xiàn)多空行的情況,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2021-03-03NumPy對數(shù)組按索引查詢實戰(zhàn)方法總結
數(shù)組的高級操作主要是組合數(shù)組,拆分數(shù)組,tile數(shù)組和重組元素,下面這篇文章主要給大家介紹了關于NumPy對數(shù)組按索引查詢的相關資料,文中通過圖文介紹的非常詳細,需要的朋友可以參考下2022-08-08matplotlib交互式數(shù)據(jù)光標實現(xiàn)(mplcursors)
這篇文章主要介紹了matplotlib交互式數(shù)據(jù)光標實現(xiàn)(mplcursors),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2021-01-01Python利用glob庫實現(xiàn)輕松應對文件和目錄管理
Python提供了glob庫,它允許我們根據(jù)特定模式匹配文件和目錄,本文將詳細介紹glob庫的用法,并通過實例演示它的各種功能,需要的可以了解一下2023-07-07