资讯专栏INFORMATION COLUMN

Django定时任务Django-crontab的使用方法介绍

89542767 / 430人阅读


  Python中的功能还是相当的多的,比如,会涉及到使用Django定时任务,在工作当中,它的用途是比较的多的,其中,测试工程师用到这种的功能是比较多,所以我们要去进行详细的了解下,下面就给大家详细的解答下。


  在使用的django做测试平台时,,多多少少都会遇到需要定时任务的功能,比如定时执行任务,检查订单之类的。可能是一段时间,比如每隔10分钟执行一次,也可能是定点时间,比如14:00执行,也可能是长时间,比如每周几,每个月的哪一天等。查看了一下相关资料,django定时任务django-crontab库比较多教程和资料,虽然star数才五百,但是API接口比较简单,接入也很方便,功能也很全面,当然,也存在一此无法解决的问题,使用时需要注意的


  1.使用pip install django-crontab


  2.添加配置文件到settings.py INSTALLED_APPS中,


  INSTALLED_APPS=(
  'django_crontab',
  )


  3.编写定时函数


  定时任务分为两类,一种是执行自定义的manage.py,另一种是执行自定义函数


  在Django中的app中新建一个myapp/cron.py文件,把需要定时的代码放进去


  def my_schedule_job():
  pass


  4.在setting.py中增加CEONJOBS配置


  CRONJOBS=[
  ('*/5****','myapp.cron.my_scheduled_job')
  ]

  也可以定义一些关键字参数,有2种格式:


  格式1:


  要求:cron计时通常格式(有关更多示例,请参阅Wikipedia和crontab.guru)


  要求:python模块路径下待执行定时任务


  可选:特定于定时任务的后缀(例如,将out/err重定向到文件,默认值为'')


  CRONJOBS=[
  ('*/1****',
  'appname.test_crontab.test','>>/home/python/test_crontab.log')
  ]


  注意:>>表示追加写入,>表示覆盖写入。


  格式2:


  要求:cron计时通常格式


  要求:python模块路径下待执行定时任务


  可选:方法的位置参数列表(默认值:[])


  可选:方法的关键字参数的dict(默认值:{})


  可选:特定于定时任务的后缀(例如,将out/err重定向到文件,默认值为'')


  CRONJOBS=[
  ('*/5****','myapp.cron.other_scheduled_job',['arg1','arg2'],
  {'verbose':0}),
  ('0 4***','django.core.management.call_command',['clearsessions']),
  ]


  对于熟悉Linux中定时任务crontab的同学可能对上面第一个参数的语法很亲切。上面表示每隔1分钟


  执行一次代码。


  Linux中的定时任务crontab的语法如下:

  *代表所有的取值范围的数字
  /代表每的意思,*/5就是5个单位
  -代表从某个数字到某个数字
  ,分来几个离散的数字
  ---------------------------
  每两个小时0*/2***
  晚上11点到早上8点之间每两个小时,早上8点0 23-7,8***
  每个月的4号和每个礼拜的礼拜一到礼拜三的早上11点0 11 4*1-3
  1月1日早上4点0 4 1 1*
  0 6***commands>>/tmp/test.log#每天早上6点执行,并将信息追加到test.log中
  0*/2***commands#每隔2小时执行一次
  5.添加并启动定时任务
  #添加并启动定时任务
  python manage.py crontab add
  其他命令
  #显示当前的定时任务
  python manage.py crontab show
  #删除所有定时任务
  python manage.py crontab remove

  总结


  现在在进行测试的时候,需要用到各种各样的工具类产品,甚至是一些自动化类型的产品。作为测试开发工程师,我们可能没有权限去操作服务器,那么我们就只能使用django-crontab,在指定时间(循环执行)测试用例


  到此为止,这篇文章就给大家介绍到这里了,希望可以给大家带来更多的帮助。

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/128021.html

相关文章

  • django开发-定时任务使用

    摘要:今天介绍在中使用定时任务的两种方式。添加并启动定时任务其它命令显示当前的定时任务删除所有定时任务今天的定时任务就说到这里,有错误之处,欢迎交流指正 今天介绍在django中使用定时任务的两种方式。 方式一: APScheduler1)安装: pip install apscheduler 2)使用: from apscheduler.scheduler import Scheduler...

    wean 评论0 收藏0
  • Django使用celery 异步发送短信验证码

    摘要:介绍应用举例是一个基于开发的分布式异步消息任务队列,通过它可以轻松的实现任务的异步处理,如果你的业务场景中需要用到异步任务,就可以考虑使用你想对台机器执行一条批量命令,可能会花很长时间,但你不想让你的程序等着结果返回,  celery 1.celery介绍 1.1 celery应用举例 Celery 是一个 基于python开发的分布式异步消息任务队列,通过...

    everfly 评论0 收藏0
  • 关于 Django 开发 11 件事

    摘要:在这里的脚本有,部署到预发布生产服务器,清理目录,压缩,备份数据库,在本地,等等。目录存储了所有数据库,,,,等等的配置文件。我使用做所有的排序任务,从发送邮件到从拉取数据。当我第一次开始开发和的时候,我使用,但是已经把所有事情移植进了。 本文原文是 11 Things I Wish I Knew About Django Development Before I Star...

    JayChen 评论0 收藏0
  • Celery实际使用与内存泄漏问题(面试)

    摘要:结论执行完任务不释放内存与原一直没有被销毁有关,因此可以适当配置小点,而任务并发数与配置项有关,每增加一个必然增加内存消耗,同时也影响到一个何时被销毁,因为是均匀调度任务至每个,因此也不宜配置过大,适当配置。 1.实际使用 ​ 监控task的执行结果:任务id,结果,traceback,children,任务状态 ​ 配置 backend=redis://127...

    0x584a 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<