使用django-crontab創建定時任務

一、安裝django-crontab

pip install django-crontab

二、在django項目settings.py中註冊

INSTALLED_APPS = [
    ......
    'django_crontab',
    'app_name'
]

【注意】django_crontab必定要註冊在應用名以前,在這裏是下劃線,不是短橫。python

三、在settings.py中配置定時任務

# 定時任務
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中添加任務

#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'
相關文章
相關標籤/搜索