需求
做后台开发的时候,有时候会遇到这样的需求,在某个固定时间或者一定时间间隔自动触发某一事件。比如说我有一个需求要求是,周一到周五早上九点发送邮件。
使用安装第三方包 django-crontab
pipinstalldjango-crontab
配置第三方包
# 配置文件 settings.py
INSTALLED_APPS= (
'django_crontab',
...
)
定义任务
# 子应用下某个 py 文件里添加任务函数
# mail/send_mail.py
deftask_send_mail():
pass
配置任务
# 配置文件 settings.py
CRONJOBS= [
('0 9 * * 1-5','mail.send_mail.task_send_mail')
]
对任务的操作命令 添加并启动任务 查看任务 删除任务
pythonmanage.pycrontabadd
pythonmanage.pycrontabshow
pythonmanage.pycrontabremove
补充配置任务的五个 * * * * *
前5个(*)星号
M(分钟0-59)
H(小时0-23)
D(天1-31)
m(月1-12)
d(一星期0-6,为星期天)
特殊符号
*代表所有的取值范围的数字
/代表每的意思,*/5就是每5个单位
-代表从某个数字到某个数字
,分开几个离散的数字
eg:
14**1-5周一到周五每天下午两点触发任务
10**,6周六、周天早上十点触发任务
*/59-10**1-5周一到周五九点到十点每五分钟触发任务
打印 log
# 将在任务函数中 print 的内容打印到你指定的文件中
('0 9 * * 1-5','mail.send_mail.task_send_mail','> send_mail.txt')
领取专属 10元无门槛券
私享最新 技术干货