APScheduler —— Python化的Cron


APScheduler全程為Advanced Python Scheduler,是一款輕量級的Python任務調度框架。它允許你像Cron那樣安排定期執行的任務,並且支持Python函數或任意可調用的對象。

安裝APScheduler

可以使用pip工具安裝:

pip install apscheduler

或在Pypi上下載最新的源碼包(https://pypi.python.org/pypi/APScheduler/)進行安裝:

python setup.py install

簡單的應用(翻譯自官方文檔)

以默認配置啟動Scheduler

from apscheduler.scheduler import Scheduler
   
sched = Scheduler()
sched.start()

from apscheduler.scheduler import Scheduler

sched = Scheduler()

sched.start()

1.基於固定時間的調度:

from datetime import date
from apscheduler.scheduler import Scheduler
   
# 啟動Scheduler
sched = Scheduler()
sched.start()
   
# 定義被自動調度的函數
def my_job(text):
    print text
   
# 定義任務的執行時間(2013年5月17日)
exec_date = date(2013, 5, 17)
   
# 加入到任務隊列,並將其賦值給變量以方便取消等操作
job = sched.add_date_job(my_job, exec_date, ['text'])

2.周期任務:

def job_function():
    print "Hello World"
    
# job_function將會每兩小時執行一次
sched.add_interval_job(job_function, hours=2)
    
# 與上面的任務相同,不過規定在2013-5-17 18:30之后才開始運行
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風格的任務的調度:

def job_function():
    print "Hello World"
   
# 安排job_function函數將會在六月、七月、十一月和十二月的第三個星期五中的0點、1點、2點和3點分別執行
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!"

更強大的使用方法可以進一步參考官方文檔。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM