在使用的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
  1. 在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 的语法如下:

* * * * * command
分钟(0-59) 小时(0-23) 每个月的哪一天(1-31) 月份(1-12) 周几(0-6) shell脚本或者命令
* 代表所有的取值范围的数字
/ 代表每的意思,*/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小时执行一次
  1. 添加并启动定时任务
# 添加并启动定时任务
python manage.py crontab add

其他命令

#显示当前的定时任务
python manage.py crontab show
#删除所有定时任务
python manage.py crontab remove

总结

测试平台执行测试用例时,可以借助jenkins之类的CI/CD工具,也可以使用定时任务crontab,作为测试开发工程师,我们可能没有权限去操作服务器,那么我们就只能使用django-crontab,在指定时间(循环执行)测试用例

Django定时任务Django-crontab的使用的更多相关文章

  1. django 定时任务 django-crontab 的使用

    成功例子如下图: 1.前言 在做 django 开发需求时,多多少少都会遇到需要定时任务的功能,比如定时执行任务,检查订单之类的.可能是一段时间,比如每隔 10分钟执行一次,也可能是定点时间,比如 1 ...

  2. 【Django】Django 定时任务实现(django-crontab+command)

    一.编写自定义django-admin命令 注:利用django-admin自定义命令我们可以ORM框架对model进行操作,如:定时更新数据库,检测数据库状态..... Django为项目中每一个应 ...

  3. Django 定时任务实现(django-crontab+command)

    一.编写自定义django-admin命令 注:利用django-admin自定义命令我们可以ORM框架对model进行操作,如:定时更新数据库,检测数据库状态..... Django为项目中每一个应 ...

  4. Django settings — Django 1.6 documentation

    Django settings - Django 1.6 documentation export DJANGO_SETTINGS_MODULE=mysite.settings django-admi ...

  5. Python之路【第二十三篇】:Django 初探--Django的开发服务器及创建数据库(笔记)

    Django 初探--Django的开发服务器及创建数据库(笔记) 1.Django的开发服务器 Django框架中包含一些轻量级的web应用服务器,开发web项目时不需再对其配置服务器,Django ...

  6. Django 初探--Django的开发服务器及创建数据库(笔记)

    1.Django的开发服务器 Django框架中包含一些轻量级的web应用服务器,开发web项目时不需再对其配置服务器,Django提供的内置服务器可以在代码修改时自动加载,从而实现网站的迅速开发. ...

  7. linux下系统定时任务配置----crontab(mysql定时备份)

    crontab命令用于设置周期性被执行的指令,与windows下的计划任务类似,当安装完成操作系统后,默认会安装此服务工具,并且会自动启动crond进程,crond进程每分钟会定期检查是否有要执行的任 ...

  8. 定时任务之crontab命令

    1.简介 crontab用于设置周期性被执行的命令 Linux系统中Linux调动工作分为两大类: 1.系统执行的工作:系统周期性所要执行的工作,如备份系统数据.清理缓存 2.个人执行的工作:某个用户 ...

  9. Django之django模型层二多表操作

    一 创建模型 表和表之间的关系 一对一.多对一.多对多 ,用book表和publish表自己来想想关系,想想里面的操作,加外键约束和不加外键约束的区别,一对一的外键约束是在一对多的约束上加上唯一约束. ...

随机推荐

  1. 打基础丨Python图像处理入门知识详解

    摘要:本文讲解图像处理基础知识和OpenCV入门函数. 本文分享自华为云社区<[Python图像处理] 一.图像处理基础知识及OpenCV入门函数>,作者: eastmount. 一.图像 ...

  2. 【ASP.NET Core】自己编程来生成自签名的服务器证书

    如果项目不大,或者是客户公司内部使用,或者不想花钱购买证书,又或者用于开发阶段测试--完全可以使用自签名证书. 所谓自签,就是自己给自己签名颁发的证书,自给自足,丰衣足食. 生成证书的方法和工具很多, ...

  3. ansible的roles使用

    1.创建roles文件夹 mkdir roles 2.在roles文件夹里面创建文件夹 cd roles/ mkdir {nginx,uwsgi,redis,mysql} 3.cd nginx 4.m ...

  4. 购物车+ATM项目(图形化)

    项目下载 项目目录结构 运行效果 seetings.py import logging import logging.config # 定义日志输出格式 开始 import os standard_f ...

  5. DirectX11 With Windows SDK--39 阴影技术(VSM、ESM)

    前言 上一章我们介绍了级联阴影贴图.刚开始的时候我尝试了给CSM直接加上PCSS,但不管怎么调难以达到说得过去的效果.然后文章越翻越觉得阴影就是一个巨大的坑,考虑到时间关系,本章只实现了方差阴影贴图( ...

  6. [保姆级教程] 如何在 Linux Kernel (V5.17.7) 中添加一个系统调用(System call)

    最近在学习 <linux Kernel Development>,本书用的linux kernel 是v2.6 版本的.看完"系统调用"一节后,想尝试添加一个系统调用, ...

  7. 【ASP.NET Core】URL重写

    今天老周和大伙伴们聊聊有关 Url Rewrite 的事情,翻译过来就是 URL 重写. 这里不得不提一下,URL重定向与重写的不同. 1.URL重定向是客户端(通常是浏览器)向服务器请求地址A,然后 ...

  8. JS作用域与闭包

    JS作用域与闭包 在JavaScript中,作用域是可访问变量,对象,函数的集合. 变量分为全局变量和局部变量.全局变量在函数外定义,HTML中全局变量是window对象,所有数据对象都属于windo ...

  9. 斯坦福NLP课程 | 第15讲 - NLP文本生成任务

    作者:韩信子@ShowMeAI,路遥@ShowMeAI,奇异果@ShowMeAI 教程地址:http://www.showmeai.tech/tutorials/36 本文地址:http://www. ...

  10. 好客租房46-react组件进阶目标

    1能够使用props接收数据 2能够使用父子组件之间的通讯 3能够实现兄弟组件之间的通讯 4能够给组件添加props校验 5能够说出生命周期常用的钩子函数 6能够知道高阶组件的作用 组件通讯介绍 组件 ...