本文介紹怎么在一個django的項目里增加定時任務。
使用的框架為APScheduler, 安裝APScheduler:
pip install apscheduler==2.1.2
安裝完成后,打開django web 項目的urls.py 增加以下內容:
from apscheduler.scheduler import Scheduler
from siteathome import tests
sched = Scheduler()
@sched.interval_schedule(seconds=60)
def my_task():
tests.testFuncton()
sched.start()
其中, siteathome.tests 里面的testFunction()是需要被定時執行的任務,這里定義每60秒執行一次。
def testFuncton(): print("Hello Scheduler")
啟動django 項目, 觀察控制台,每60秒會有一個Hello Scheduler 輸出:
Performing system checks... System check identified no issues (0 silenced). You have 13 unapplied migration(s). Your project may not work properly until you apply the migrations for app(s): admin, auth, contenttypes, sessions. Run 'python manage.py migrate' to apply them. November 15, 2017 - 21:42:16 Django version 1.11, using settings 'djangoathome.settings' Starting development server at http://127.0.0.1:8000/ Quit the server with CTRL-BREAK. Hello Scheduler Hello Scheduler Hello Scheduler Hello Scheduler Hello Scheduler Hello Scheduler Hello Scheduler Hello Scheduler
