如何在Django中開啟一個定時任務



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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM