django实现定时任务,crontab定时执行python脚本
在测试平台执行测试用例时,我们可以使用像jenkins或者crontab这样的CI/CD工具,这是一个定时的任务。作为测试开发工程师,我们可能没有操作服务器的权限,所以只能使用django-crontab在指定的时间周期内执行测试用例。有兴趣使用定时任务Django-crontab的朋友来看看吧。
在使用django作为测试平台时,你或多或少会遇到一些需要预定任务的功能,比如定时执行任务,检查订单等。可以是一段时间,如每10分钟,也可以是固定时间,如14:00,也可以是很长时间,如一周中的某一天,一月中的某一天等。查了一下相关资料,django定时任务的django-crontab库中有很多教程和资料。虽然star的数量只有500,但是API接口相对简单,访问方便,功能全面。当然也有一些解决不了的问题,使用时要注意。
1.使用pip安装django-crontab
2.将配置文件添加到settings.py INSTALLED_APPS中,
INSTALLED_APPS=(
django_crontab,
)
3.写定时功能。
调度任务分为两类,一类是执行自定义manage.py,另一类是执行自定义函数。
在Django的app里新建一个myapp/cron.py文件,放入需要计时的代码。
def我的计划作业():
及格
4.在setting.py中添加CEONJOBS配置
CRONJOBS=[
( */5 * * * * ,myapp.cron.my_scheduled_job )
]
您还可以用两种格式定义一些关键字参数:
格式1:
要求:cron计时的常用格式(参见Wikipedia和crontab.guru获取更多示例)
要求:要在python模块路径下执行的计划任务
可选项:特定于计划任务的后缀(例如,重定向输出/错误到文件,默认值为)
CRONJOBS=[
(*/1 * * * *,
appname.test_crontab.test ,/home/python/test_crontab.log )
]
注:表示追加写入,表示覆盖写入。
格式2:
要求:cron计时的通常格式
要求:要在python模块路径下执行的计划任务
可选项:方法的位置参数列表(默认值:[])
可选项:方法的关键字参数的dict(默认值:{})
可选项:特定于计划任务的后缀(例如,重定向输出/错误到文件,默认值为)
CRONJOBS=[
( */5 * * * * ,myapp.cron.other_scheduled_job ,[arg1 , arg2],
{verbose: 0}),
( 0 4 * * * , django . core . management . call _ command ,[clearsessions]),
]
熟悉crontab(Linux中的一个定时任务)的学生可能熟悉上面第一个参数的语法。它说每一分钟。
执行一次代码。
Linux中crontab的语法如下:3360
* * * * *命令
分钟(0-59)小时(0-23)一月中的哪一天(1-31)月(1-12)周(0-6) shell脚本或命令
*代表所有数值范围的数字。
/代表每一个,*/5是五个单位。
-代表从某个数字到某个数字
,分成几个离散的数字。
-
每两小时0 */2 * * *次
每两个小时一次,从晚上11点到早上8点,早上8点23-7点,8 * * *
每月4日,每周一至周三上午11: 00 11 4 * 1-3。
2011年1月1日下午4点
0 * * * commands/tmp/test.log #在每天早上6点执行,信息追加到test.log中。
0 */2 * * *命令#每2小时执行一次。
5.添加并启动计划任务。
#添加并启动计划任务
python manage.py crontab添加
其他订单
#显示当前计划的任务
python manage.py crontab显示
#删除所有计划任务
python manage.py crontab移除
总结
在测试平台执行测试用例时,我们可以使用像jenkins或crontab这样的CI/CD工具,一个定时任务。作为测试开发工程师,我们可能没有操作服务器的权限,所以只能使用django-crontab在指定时间测试用例(循环执行)。
关于Django-crontab使用的这篇文章到此为止,关于Django-crontab的更多信息,请搜索热门IT软件开发工作室之前的文章或者继续浏览下面的相关文章。希望你以后能支持风行IT软件开发工作室!
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。