django 设置定时任务

django 设置定时任务

定时任务crontab静态化首页

重要提示:

对于首页的静态化,考虑到页面的数据可能由多名运营人员维护,并且经常变动,所以将其做成定时任务,即定时执行静态化。

在Django执行定时任务,可以通过django-crontab扩展来实现。
1.安装 django-crontab

pip install django-crontab

2.注册 django-crontab 应用

INSTALLED_APPS = [    
    'django_crontab', # 定时任务
]

3.设置定时任务

定时时间基本格式 :

*  *  *  *  *

分 时 日 月 周    命令

M: 分钟(0-59)。每分钟用 * 或者 */1 表示
H:小时(0-23)。(0表示0点)
D:天(1-31)。
m: 月(1-12)。
d: 一星期内的天(0~6,0为星期天)。

定时任务分为三部分定义:

  1. 任务时间
  2. 任务方法
  3. 任务日志
CRONJOBS = [
    # 每1分钟生成一次首页静态文件
    ('*/1 * * * *', 'contents.crons.generate_static_index_html', '>> ' + os.path.join(os.path.dirname(BASE_DIR), 'logs/crontab.log'))
]

解决 crontab 中文问题

在定时任务中,如果出现非英文字符,会出现字符异常错误

CRONTAB_COMMAND_PREFIX = 'LANG_ALL=zh_cn.UTF-8'

4.管理定时任务

# 添加定时任务到系统中
$ python manage.py crontab add

# 显示已激活的定时任务
$ python manage.py crontab show

# 移除定时任务
$ python manage.py crontab remove
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容