django实现定时任务,crontab定时执行python脚本

  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的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: