簡介
APScheduler的全稱是Advanced Python Scheduler。它是一個輕量級的基於Quartz的 Python 定時任務調度框架。APScheduler 支持三種調度任務:固定時間間隔,固定時間點(日期),Linux 下的 Crontab 命令。同時,它還支持異步執行、后台執行調度任務。
github:https://github.com/agronholm/apscheduler
官網文檔:https://apscheduler.readthedocs.io/en/latest/
組成
APScheduler整個系統可以說由這五個概念組成:調度器(scheduler),作業存儲(job store),觸發器(trigger),執行器(executor),任務(job)。
使用
import time from apscheduler.schedulers.background import BackgroundScheduler def job_func(name): print name if __name__ == '__main__': # 創建后台執行的 schedulers scheduler = BackgroundScheduler() # 每隔3分鍾執行一次 job_func 方法 scheduler.add_job(job_func, 'interval', minutes=3, args=['jack!']) # 每隔3天17時19分07秒執行一次任務 scheduler.add_job(job_func, 'interval', days=03, hours=17, minutes=19, seconds=07, args=['jack!']) # 在 2017-12-13 14:00:01 ~ 2017-12-13 14:00:10 之間, 每隔兩分鍾執行一次 job_func 方法 scheduler.add_job(job_func, 'interval', minutes=2, start_date='2017-12-13 14:00:01' , end_date='2017-12-13 14:00:10') # 每天五點執行 scheduler.add_job(job_func, 'cron', hour='5', minute='00', second='00', args=['jack!']) # 每周周五六點執行 scheduler.add_job(job_func, 'cron', day_of_week='fri', hour=14, minute=22, args=['jack!']) # 在每年 1-3、7-9 月份中的每個星期一、二中的 00:00, 01:00, 02:00 和 03:00 執行 job_func 任務 scheduler.add_job(job_func, 'cron', month='1-3,7-9',day='0, tue', hour='0-3') # 在 2017-12-13 時刻運行一次 job_func 方法 scheduler.add_job(job_func, 'date', run_date=date(2017, 12, 13), args=['jack!']) # 在 2017-12-13 14:00:00 時刻運行一次 job_func 方法 scheduler.add_job(job_func, 'date', run_date=datetime(2017, 12, 13, 14, 0, 0), args=['jack!']) # 在 2017-12-13 14:00:01 時刻運行一次 job_func 方法 scheduler.add_job(job_func, 'date', run_date='2017-12-13 14:00:01', args=['jack!']) # 啟動調度任務 scheduler.start() while True: time.sleep(5)
參考:https://www.jianshu.com/p/ad2c42245906
參考:https://www.cnblogs.com/shhnwangjian/p/7877985.html
參考:https://www.cnblogs.com/yueerwanwan0204/p/5480870.html
參考:https://blog.csdn.net/caiguoxiong0101/article/details/50364236