pip install django-crontab
INSTALLED_APPS = [ ...... 'django_crontab', 'app_name' ]
【注意】django_crontab必定要註冊在應用名以前,在這裏是下劃線,不是短橫。python
# 定時任務 CRONJOBS = [ ('*/5 * * * *', 'RecomEvalBackend.job.syncMcnData.task'), ('*/5 * * * *', 'RecomEvalBackend.job.syncMcnData.task','>> test.log'), ('*/5 * * * *', 'RecomEvalBackend.job.syncMcnData.task',['param1','param2'],{'param3': 4},'>> test.log') ]
【注意】
(1)這裏的定時任務腳本,必定是要放在應用文件夾下的;
(2)RecomEvalBackend.job.syncMcnData.task這部分的寫法應爲:應用名.文件夾.文件名.方法名linux
#django中添加定時任務 python manage.py crontab add #django中移出定時任務 python manage.py crontab remove #django中展現已添加的定時任務 python manage.py crontab show #django中單次手動執行定時任務 python manage.py crontab run <tash_hash_id>
原理是django把定時任務添加到了linux的定時任務crond服務中。因此這裏要求crond服務必須是開啓的。
查看服務器中定時任務命令:django
crontab -e
查看crond服務狀態:windows
#查看狀態 service crond status #開啓服務 service crond start #關閉服務 service crond stop #重啓服務 service crond restart
(1)django-crontab不支持windows和mac系統;在windows上執行會報錯,以下:服務器
... File "C:\Users\youngzhang\AppData\Local\Programs\Python\Python36\lib\site-packages\django_crontab\management\commands\crontab.py", line 4, in <module> from django_crontab.crontab import Crontab File "C:\Users\youngzhang\AppData\Local\Programs\Python\Python36\lib\site-packages\django_crontab\crontab.py", line 3, in <module> import fcntl ModuleNotFoundError: No module named 'fcntl'