django中使用第三方包实现定时任务

时间:2021-12-01 01:18:38

# 转载请留言联系

在做主页静态化的时候,需要定时生成主页HTML,以保持数据的最新。

定时任务可以用第三方包django-crontab来实现。

附上官方文档:https://pypi.org/project/django-crontab/

下面是一些基本使用:

  • 安装

pip install django-crontab

 

  • 添加应用

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

 

  • 设置文件中进行配置

CRONJOBS = [
    # 参数1:定时时间设置,表示每隔3分钟执行一次
    # 参数2:要定义执行的函数
    # 参数3:输出日志的位置,说明:日志文本使用绝对路径,会自动创建
    ('*/1 * * * *', 'contents.crons.generate_static_index_html',
     '>> [日志路径]'),
]

相关配置说明:

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

“*” 代表取值范围内的数字,
“/” 代表”每”,
“-” 代表从某个数字到某个数字,
“,” 分开几个离散的数字

例:
*/5 * * * *        每隔5分钟
30 9 * * 6,0       周六日9点半
30 6 * * 1-5       周一到周五6点半

 

  • 开启定时任务

# 添加定时任务到系统中
    python manage.py crontab add
    # 显示已经激活的定时任务
    python manage.py crontab show
    # 移除定时任务
    python manage.py crontab remove