Linux定时任务,Django_crontab设置,Django定时任务设置

2022-07-14 14:31:09 浏览数 (1)

Django_crontab仅限于Linux系统(唉,可惜呀),这是我经过试验的出来的结论

首先呢,需要安装一下django_crontab,一如既往的pip

pip install django_crontab

然后在Django的settings中添加app,似乎要添置到前排才行。

代码语言:javascript复制
INSTALLED_APPS = [
    'django_crontab',
    ......
]

再在settings中添加

代码语言:javascript复制
CRONJOBS = [
    ('*/1 * * * *', 'Wei.core.task', ">> result.log")
]

这里的CRONJOBS固定的写法不用管,中括号内便是自己的任务。

首先是第一个参数:

代码语言:javascript复制
'*/1 * * * *'

这个呢,和Linux下的crontab的执行时间计算一样的。

代码语言:javascript复制
例子:
# 每月的最后1天
0 0 L * * *

说明:
Linux
*    *    *    *    *
-    -    -    -    -
|    |    |    |    |
|    |    |    |     ----- day of week (0 - 7) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
|    |    |     ---------- month (1 - 12) OR jan,feb,mar,apr ...
|    |     --------------- day of month (1 - 31)
|     -------------------- hour (0 - 23)
 ------------------------- minute (0 - 59)

字段

是否必填

允许值

允许特殊字符

备注

Seconds

0–59

*,-

标准实现不支持此字段。

Minutes

0–59

*,-

Hours

0–23

*,-

Day of month

1–31

*,-?LW

?LW只有部分软件实现了

Month

1–12 or JAN–DEC

*,-

Day of week

0–7 or SUN–SAT

*,-?L#

?L#只有部分软件实现了Linux和Spring的允许值为0-7,0和7为周日Quartz的允许值为1-7,1为周日

Year

1970–2099

*,-

标准实现不支持此字段。

这个可以用网上的一些功能进行在线计算,百度自寻即可。

第二个参数,指定任务所在

代码语言:javascript复制
'Wei.core.task'

我的这个意思就是在Wei这个app下的core.py中的task函数

第三个参数,指定日志文件

代码语言:javascript复制
">> result.log"

签名的>>表示写入日志时追加写入,如需覆盖则为一个>

后面的就是文件路径了

0 人点赞