在django中有時候我們會有一些簡單的調度需求,這是可以考慮集成Apscheduler
安裝
pip3 install apscheduler pip3 install django-apscheduler
在django的settings.py文件的INSTALLED_APPS加入'django_apscheduler'
執行python manage.py migrate 會在數據庫給Apscheduler新生成兩張表,任務表和任務執行表
在django任意app的views.py加入以下代碼
#views.py from apscheduler.schedulers.background import BackgroundScheduler from django_apscheduler.jobstores import DjangoJobStore, register_job, register_events scheduler = BackgroundScheduler() scheduler.add_jobstore(DjangoJobStore(), 'default') @register_job(scheduler, 'cron', id='test5', hour=17, minute=30) def test_func(): print("hello,django1") @register_job(scheduler, 'interval', id='test6', seconds=30) def test_func2(): print("hello,django2") register_events(scheduler) scheduler.start()
django項目一啟動,就會生成兩個調度任務,一個每天17:30定時執行,另一個每隔30秒執行
如果想要更細粒度的開啟、停止任務,就不能在用django-apscheduler,需要對apscheduler做進一步的開發。