Django項目之定時任務

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

安裝

pip install django-crontab

添加應用

INSTALLED_APPS = [
    ...
    'django_crontab',  # 定時任務
    ...
]

設置任務的定時時間

在配置文件中設置定時執行的時間

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

  • 任務時間

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

  • 任務日誌

首頁的定時任務設置如下

# 定時任務
CRONJOBS = [
    # 每5分鐘執行一次生成主頁靜態文件
    ('*/5 * * * *', 'contents.crons.generate_static_index_html', '>> Desktop/aaa/logs/crontab.log')
]

參數解釋:

# 執行定時任務的方法
contents.crons.generate_static_index_html
# 執行定時任務保存的日誌文件
Desktop/aaa/logs/crontab.log

解決中文字符問題

在定時任務中,如果出現非英文字符,會出現字符異常錯誤
在這裏插入圖片描述
可以通過在配置文件中添加定時任務執行的附加命令來實現

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

開啓定時任務

添加定時任務到系統中

python manage.py crontab add

顯示已經激活的定時任務

python manage.py crontab show

移除定時任務

python manage.py crontab remove
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章