1. 程式人生 > >django-crontab 定時任務

django-crontab 定時任務

定時任務

對於首頁的靜態化,考慮到頁面的資料可能由多名運營人員維護,並且經常變動,所以將其做成定時任務,即定時執行靜態化。

在Django執行定時任務,可以通過django-crontab擴充套件來實現。

1. 安裝
pip install django-crontab
2. 新增應用
INSTALLED_APPS = [
    ...
    'django_crontab',  # 定時任務
    ...
]
3. 設定任務的定時時間

在配置檔案中設定定時執行的時間

每個定時任務分為三部分定義:

  • 任務時間

    基本格式 :
    * * * * * 分 時 日 月 周 命令 M: 分鐘(0-59)。每分鐘用*或者 */1表示 H:小時(0-23)。(0表示0點) D:天(1-31)。 m: 月(1-12)。 d: 一星期內的天(0~60為星期天)。
  • 任務方法

  • 任務日誌

首頁的定時任務設定如下

# 定時任務
CRONJOBS = [
    # 每5分鐘執行一次生成主頁靜態檔案
    ('*/5 * * * *', 'contents.crons.generate_static_index_html', '>> /Users/delron/Desktop/******/logs/crontab.log'
) # 這裡是你的日誌路徑 ]
4. 解決中文字元問題

在定時任務中,如果出現非英文字元,會出現字元異常錯誤
crontab錯誤.png

可以通過在配置檔案中新增定時任務執行的附加命令來實現

# 解決crontab中文問題
CRONTAB_COMMAND_PREFIX = 'LANG_ALL=zh_cn.UTF-8'

5. 開啟定時任務

新增定時任務到系統中

python manage.py crontab add

顯示已經啟用的定時任務

python manage.py crontab show

移除定時任務

python manage.py crontab remove