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"
签名的>>表示写入日志时追加写入,如需覆盖则为一个>
后面的就是文件路径了