Django 定时任务 django-crontab

测试平台开发中,会有些定时任务的需求,在django中定时任务模块可以使用 django-crontab。

1、安装:pip install django-crontab

2、添加到django配置中,setting.py INSTALLED_APPS中

INSTALLED_APPS = (
    'django_crontab', #注意安装的时候是"-"配置中是"_" 。
)

3、可以创建目录文件,在文件中,写定时任务函数了。

4、配置定时任务,在setting.py中添加CRONJOBS配置

CRONJOBS = [
    ('*/1 * * * *', 'produceTest.timeding.test','>>/logs/ding.log') # 第一位配置时间,第二位指定执行的函数,第三位指定log
]

这样配置就完成了。

5、启动定时任务

python manage.py crontab add

6、查看所有的定时任务

python manage.py crontab show

7、删除所有定时任务

python manage.py crontab remove

8、指定输出log

任务函数中可以使用print,logger等方法,会输出到指定的log中

注意:输出log的命名规则,不建议使用变量名,生成任务时,会生成对应的哈希值,用来标记每个任务,标识唯一的,第二天指定log名变更会生成新的哈希值,新的哈希值未在添加的任务中,所以不会被执行。可以使用固定命名的方式,第二天对固定的名的log进行更改

 

9、定时规则操作

(* * * * *) 对应的分,时,日,月,周

(0 6 10 5) 5月10日6点执行一次
* 表示任何值
/ 每的意思 eg:(*/3 * * * *)表示每3分钟执行一次
1-5 可以指定区间

例:
(* 6 * * *) 每天6点执行一次
(* */6 * * *) 每6个小时执行一次

定时规则参考文档:https://crontab.guru/examples.html
posted @ 2020-07-30 21:55  TestingShare  阅读(362)  评论(0)    收藏  举报