时间:2021-05-22
需求
每天请求一封邮件,并读取该邮件
这个其实可以使用linux 自带了crontab实现,但是毕竟是django 开发。想着不知道有没有方法可以从django 中实现。
简单搜索了下,这方面的方法确实不少。
由于看到celery 插件学习曲线较大,这个小的需求就使用django-crontab 解决。
安装
添加app名称到 settings.py中
INSTALLED_APPS = ( 'django_crontab', ... )到这里基本没有问题。
接下来创建定时任务可以分成两种,一种是执行自定义的mange.py的命令,另一种是执行自定义函数。
我选择的方法是自定义函数。
首先在原来的app 中(与view.py同级)新建一个cron.py (名字可以任意,其实也可以放在view.py中,新建文件方便管理。)
def test(): print 123 #你要执行的任务函数在 settings.py中的最后增加
CRONJOBS = [ ('*/5 * * * *', 'appname.cron.test','>>/home/test.log')]如果你有多个定时任务,都放入CORJOBS中即可,
需要说明的是,
‘/5 * * *' 遵循的是crontab 语法。
‘appname.cron.test',这个appname就是你开发时加入到settings中的那个。因为你的cron.py文件就在这个下面,否则找不到路径。cron 就是你自己起的任务文件的名字。test就是执行的函数中的内容。
‘>>/home/test.log',通常会输出信息到一个文件中,就使用这个方法,注意的是‘>>'表示追加写入,'>'表示覆盖写入。
启动
以上都完成后,需要执行
将任务添加并生效
显示当前的定时任务
删除所有定时任务
重启django服务。
执行
应该是可以看到系统中创建了该定时任务。
说到底,只是django-crontab插件对linux底层的调用,不确定这个方法在windows 上是否生效。
大家可以多做尝试,看下github上的文档,对理解使用还是非常的有帮助。
各种路径一定要确保正确,否则较难排查错误。
介绍依据个人理解,难免疏忽遗漏,如果能帮到大家最好。
参考链接
github : https://github.com/kraiz/django-crontab
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
今天打算在自己的Django应用中添加一个定时任务来定时执行一些定期检查的功能,因此想到了使用django-crontab插件可以满足我的需求,下面就是这个插件
很多人在linux下使用crontab实现PHP执行定时任务却未能成功,不能生成缓存。本文就linux下使用crontab实现定时PHP计划任务失败的原因做一分
下面通过理论讲解,实例分析,效果展示的方式给大家分享下PHP定时执行任务实现方法。定时器任务,在WEB应用比较常见,如何使用PHP实现定时器任务,大致有两种方案
在Android开发中,定时执行任务的3种实现方法:一、采用Handler与线程的sleep(long)方法(不建议使用,Java的实现方式)二、采用Handl
目标:从plc采集数据到数据库,利用echart绘制实时动态曲线。1思路-django定时执行任务,将数据推送到echart。-前端定时读取后端数据,并显示到e