1. 安裝支持包:django-crontab
安裝方式:pip install django-crontab
2. 注冊定時應用
在settings.INSTALLED_APPS中添加應用:
INSTALLED_APPS = [
'django_crontab', # 定時任務
]
3. 定時任務crontab的時間設置格式
定時時間基本格式 :
5個'*'符號:* * * * * 命令
依次對應:分 時 日 月 周
M: 分鍾(0-59)。每分鍾用 * 或者 */1 表示
H:小時(0-23)。(0表示0點)
D:天(1-31)。
m: 月(1-12)。
d: 一星期內的天(0~6,0為星期天)。
示例:
- 每1分鍾執行一次myCommand
* /1* * * * myCommand
- 每小時的第3和第15分鍾執行
3,15 * * * * myCommand
- 在上午8點到11點的第3和第15分鍾執行
3,15 8-11 * * * myCommand
- 每隔兩天的上午8點到11點的第3和第15分鍾執行
3,15 8-11 */2 * * myCommand
- 每周一上午8點到11點的第3和第15分鍾執行
3,15 8-11 * * 1 myCommand
4. 設置定時任務
在settings中添加CRONJOBS,設置定時任務。
- 以下示例定時任務為:apps下--contents應用內--generate_static_index_html方法;
- 定時時間為:每隔一分鍾運行一次;
- ">>"符:拼接定時任務運行結果保存路徑。
CRONJOBS = [
# 每1分鍾生成一次首頁靜態文件
('*/1 * * * *', 'contents.crons.generate_static_index_html', '>> ' + os.path.join(os.path.dirname(BASE_DIR), 'logs/crontab.log'))
]
5. 設置中文支持
在定時任務中,如果出現非英文字符,會出現字符異常錯誤
- 在settings中添加:
CRONTAB_COMMAND_PREFIX = 'LANG_ALL=zh_cn.UTF-8'
6. 管理定時任務
- 添加定時任務到系統中,啟動定時任務必須先執行改語句。
$ python manage.py crontab add
- 顯示已激活的定時任務
$ python manage.py crontab show
- 移除定時任務
$ python manage.py crontab remove