Django定时任务

Django定时任务

安装

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为星期天)。
  
  例如:
  1)   1 * * * *  表示每个小时的01分更新
  2)    1 2 * * *  表示每天的2时01分更新
  3)    1 2 3 * * 表示每月的3号2时01分更新
  4)   */1 * * * * 表示每隔1分钟更新一次
  5)    * */1 * * * 表示每隔1小时更新一次
  

任务方法

任务日志

首页的定时任务设置如下

# 定时任务
CRONJOBS = [
    # 每1分钟执行一次生成主页静态文件
    ('*/1 * * * *', 'contents.crons.generate_static_index_html', '>> /Users/meihao/Desktop/meiduo_demo/meiduo_mall/logs/crontab.log')
]
('任务时间','任务方法','任务日志生产路径')    # '>>' 不能少

解决中文字符问题

在定时任务中,如果出现非英文字符,会出现字符异常错误
Django定时任务
可以通过在配置文件中添加定时任务执行的附加命令来实现

# 解决 crontab 中文问题
CRONTAB_COMMAND_PREFIX = 'LANG_ALL=zh_cn.UTF-8'

开启定时任务

我们设置好定时任务之后, 需要把定时任务添加到操作系统中才能够启动:

添加定时任务到系统中

python manage.py crontab add

显示已经**的定时任务

python manage.py crontab show

移除定时任务

python manage.py remove