APScheduler全程為Advanced Python Scheduler,是一款輕量級(jí)的Python任務(wù)調(diào)度框架。它允許你像Cron那樣安排定期執(zhí)行的任務(wù),并且支持Python函數(shù)或任意可調(diào)用的對(duì)象。
安裝APScheduler
可以使用pip工具安裝:
pip install apscheduler
或在Pypi上下載最新的源碼包(https://pypi.python.org/pypi/APScheduler/)進(jìn)行安裝:
python setup.py install
簡(jiǎn)單的應(yīng)用(翻譯自官方文檔)
以默認(rèn)配置啟動(dòng)Scheduler
from apscheduler.scheduler import Scheduler sched = Scheduler()sched.start()
from apscheduler.scheduler import Scheduler
sched = Scheduler()
sched.start()
1.基于固定時(shí)間的調(diào)度:
from datetime import datefrom apscheduler.scheduler import Scheduler # 啟動(dòng)Schedulersched = Scheduler()sched.start() # 定義被自動(dòng)調(diào)度的函數(shù)def my_job(text): PRint text # 定義任務(wù)的執(zhí)行時(shí)間(2013年5月17日)exec_date = date(2013, 5, 17) # 加入到任務(wù)隊(duì)列,并將其賦值給變量以方便取消等操作job = sched.add_date_job(my_job, exec_date, ['text'])
2.周期任務(wù):
def job_function(): print "Hello World" # job_function將會(huì)每?jī)尚r(shí)執(zhí)行一次sched.add_interval_job(job_function, hours=2) # 與上面的任務(wù)相同,不過(guò)規(guī)定在2013-5-17 18:30之后才開始運(yùn)行sched.add_interval_job(job_function, hours=2, start_date='2013-5-17 18:30')
裝飾器版本:
@sched.interval_schedule(hours=2)def job_function(): print "Hello World"
3.Cron風(fēng)格的任務(wù)的調(diào)度:
def job_function(): print "Hello World" # 安排job_function函數(shù)將會(huì)在六月、七月、十一月和十二月的第三個(gè)星期五中的0點(diǎn)、1點(diǎn)、2點(diǎn)和3點(diǎn)分別執(zhí)行sched.add_cron_job(job_function, month='6-8,11-12', day='3rd fri', hour='0-3')
裝飾器版本:
@sched.cron_schedule(day='last sun')def some_decorated_task(): print "I am printed at 00:00:00 on the last Sunday of every month!"
更強(qiáng)大的使用方法可以進(jìn)一步參考官方文檔。
新聞熱點(diǎn)
疑難解答
圖片精選
網(wǎng)友關(guān)注