django-crontab實現定時任務
1 django-crontab安裝
-
django-crontab安裝:
django-crontab加入:只需要將
INSTALLED_APPS
即可。如下代碼:INSTALLED_APPS = ( 'django_crontab', ... )
2 django-crontab配置
django-crontab可以定時運行自定義命令和函數兩種方式,因為之前嘗試用command+crontab時已經實現了自定義command,所以自然而然使用了自定義命令這種形式。
2.1 django-crontab定時運行命令
我先參考Django官方文檔自定義了一個命令 其次,我在
意思就是每天11點47分運行
2.2 django-crontab定時運行函數
django-crontab也可以定時運行函數,只是在
CRONJOBS
關於函數的配置如下:
CRONJOBS = ( # 初級模式 ('*/5 * * * *', 'myproject.myapp.cron.my_scheduled_job'), # 中級模式 ('0 0 1 * *', 'myproject.myapp.cron.my_scheduled_job', '> /tmp/last_scheduled_job.log'), #高級模式 ('0 0 * * 0', 'django.core.management.call_command', ['dumpdata', 'auth'], {'indent': 4}, '> /home/john/backups/last_sunday_auth_backup.json'), )
分析結果:
- 初級模式很直觀,意思就是每五分鍾執行一次
my_scheduled_job
的結果輸出到文件['dumpdata', 'auth']
和4}
都是參數,只是{}
中的參數指定了變量名稱,最后一個也是輸出結果的后綴。
3 django-crontab任務加載
寫好任務后,想讓任務運行,執行python manage.py crontab add 把任務添加到crontab中
Python manage.py remove 移除任務
python manage.py show 查看當前系統中的定時任務
tail -f /var/log/cron 查看定時任務的log