精华内容
下载资源
问答
  • 定时任务测试点
    万次阅读
    2017-04-27 17:47:00

    系统一般会有一些后台定时任务,假设我们使用quartz实现定时任务,那么有两个测试功能点:

    1. 定时任务逻辑是否正确
    2. 定时器cron表达式编写是否正确,触发时间点是否正确

    定时任务逻辑测试

    如果定时任务在晚上11点执行,我们不可能要求测试人员等到晚上11点时,再去检查任务执行逻辑逻辑是否正确。我们可以提供一个定时器任务管理界面,让测试人员能够手动触发任务马上执行一次。具体实现可以参见:https://www.dexcoder.com/selfly/article/311

    定时器cron表达式测试

    如果cron表达式比较复杂,或不太确定表达式是否编写正确,可以打印cron表达式,后续几次触发任务执行的时间点,就可以方便检验cron表达式编写是否正确。

    打印cron表达式,后续几次触发任务执行时间点,代码示例:

    package org.quartz.demo;
    
    import org.quartz.impl.triggers.CronTriggerImpl;
    
    import java.text.SimpleDateFormat;
    import java.util.Date;
    
    public class CronTriggerImplDemo {
    
        public static void main(String[] args) throws Exception {
    
            CronTriggerImpl trigger = new CronTriggerImpl();
            trigger.setCronExpression("0 */1 * * * ?");
    
            trigger.triggered(null);
    
            Date fireTime = trigger.getNextFireTime();
            for (int i = 0; i < 3; i++) {
                if (fireTime != null) {
                    System.out.println("下次执行时间点=" + new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(fireTime));
                    fireTime = trigger.getFireTimeAfter(fireTime);
                } else {
                    break;
                }
            }
    
        }
    
    }
    

    输出示例:

    下次执行时间点=2017-04-23 15:52:00
    下次执行时间点=2017-04-23 15:53:00
    下次执行时间点=2017-04-23 15:54:00

    转载于:https://my.oschina.net/dengdajun/blog/888602

    更多相关内容
  • 最初的定时任务设计非常简单,可以将用例集加入定时任务并设置时间间隔去运行测试。 一旦出现失败的测试用例后,会给配置好的 邮箱 / 企业微信 / 钉钉 进行报警消息推送。 发现的弊端 经过实践后,发现最初的定时...

    背景

    最近在新公司落地接口自动化测试,但因某些原因暂时无法将接口自动化测试接入项目 CI 流程(腾讯云的 tencenthub 下架了,差评!)。

    经过内部讨论,最终选择以定时任务的方式对项目接口进行持续测试。

    最初的定时任务

    最初的定时任务设计非常简单,可以将用例集加入定时任务并设置时间间隔去运行测试。

    一旦出现失败的测试用例后,会给配置好的 邮箱 / 企业微信 / 钉钉 进行报警消息推送。

    发现的弊端

    经过实践后,发现最初的定时任务在设计上存在着一些弊端:

    1. 一旦出现报错的测试用例,定时任务会在每个测试触发时间点持续地进行报警。

    2. 当定时测试任务撞上系统重启等 "特殊情况" 时,会出现 "误报",导致垃圾推送消息过多。

    给定时任务加点料

    "误报" 的问题好解决,只需要加上测试任务重试次数以及重试间隔就可以较为完美地解决问题。

    剩下的问题就是如何设计定时任务报警机制,

    经过思考后,我有了这样的想法:

    当定时任务出现报警后,该定时任务便会 进入等待用例修复 状态。在这个状态下,即使定时任务测试失败也不会再次进行任何报警。一旦在以后某个时刻定时任务测试通过,则会 解除等待用例修复 状态并推送一条 测试报警恢复 的消息提醒。

    这样做不仅可以避免定时任务持续报警的尴尬,还可以代替人工去验证缺陷的修复。(离把自己弄失业又进了一步

    比较令人惊喜的效果

    就在我刚将新的定时任务提醒机制加上的当天,他就成功地发挥了效果。

    还记得那一天望着开发们沧桑的背影,我准点下了班。

    隔天早上我发现昨晚 10 点左右定时任务报了一次警,但紧接着到 10 点半左右定时任务报了一次 测试恢复 的提醒。

     一开始我以为我的定时任务出现了异常,但一问开发,是某位开发看到推送的测试报告后将缺陷 "偷偷" 修复了...

    ps: 公司已经不需要我了 :(

    下面是配套资料,对于做【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!å¨è¿éæå¥å¾çæè¿°

    最后: 可以在公众号:程序员小濠 ! 免费领取一份216页软件测试工程师面试宝典文档资料。以及相对应的视频学习教程免费分享!,其中包括了有基础知识、Linux必备、Shell、互联网程序原理、Mysql数据库、抓包工具专题、接口测试工具、测试进阶-Python编程、Web自动化测试、APP自动化测试、接口自动化测试、测试高级持续集成、测试架构开发测试框架、性能测试、安全测试等。

    如果我的博客对你有帮助、如果你喜欢我的博客内容,请 “点赞” “评论” “收藏” 一键三连哦!喜欢软件测试的小伙伴们,可以加入我们的测试技术交流扣扣群:310357728里面有各种软件测试资源和技术讨论)

    展开全文
  • Java定时任务详解

    2020-08-27 05:33:57
    定时任务在项目中经常会使用到,本文主要根据博主自己使用定时的经验分如下几介绍定时任务:1、Quartz定时任务简介及Spring配置Quartz定时任务;2、SchedulerFactory对定时任务进行增删改查
  • Java多线程之定时任务 以及 SpringBoot多线程实现定时任务、以及分享动态实现定时任务 1. 基于单线程的定时器——简单介绍 Timer 中的 schedule 与 scheduleAtFixedRate 2. 基于多线程的定时器——...

    1. 基于单线程的定时器——简单介绍 Timer 中的 schedule 与 scheduleAtFixedRate

    1.1 前言

    • Timer,一般是用来做延时的任务或者循环定时执行的任务。
      使用 Timer 的时候,必须要有一个 TimerTask 去执行任务,这是一个实现了Runnable接口的线程,run 方法里面就是我们自己定义的线程需要做的任务。

    1.2 先说 schedule

    • 我们简单说4种情况,其实也就两个重载方法:
    • timer.schedule(timerTask,0);,没用延迟,立即执行task,且只执行一次,线程还在。 代码和效果直接看图
      在这里插入图片描述
    • timer.schedule(timerTask,5000);,延迟5秒执行task,且只执行一次,线程还在。代码和效果直接看图
      在这里插入图片描述
    • timer.schedule(timerTask,0,60000);,0表示没用延迟,立即执行,然后60000表示每隔1分钟执行一次task。代码和效果直接看图
      在这里插入图片描述
    • timer.schedule(timerTask,5000,60000);,延迟5秒后执行task,然后每隔1分钟执行一次task,代码和效果直接看图:
      在这里插入图片描述

    附代码:

    package com.liu.susu.thread.task.timer;
    
    import java.time.LocalDateTime;
    import java.util.Timer;
    import java.util.TimerTask;
    
    /**
     * @FileName TimeTaskTest1
     * @Description
     * @Author susu
     * @date 2022-03-07
     **/
    public class TimerTaskTest1 {
        public static void main(String[] args) {
            Timer timer = new Timer();
            TimerTask timerTask = new TimerTask() {//TimerTask 是实现 Runnable 接口的一个线程
                @Override
                public void run() {
                    System.out.println("task-->hello world!-->"+LocalDateTime.now());
                }
            };
            System.out.println("begin-->"+LocalDateTime.now());
    
    //        timer.schedule(timerTask,0);//没用延迟,立即执行task,且只执行一次,线程还在
    //        timer.schedule(timerTask,5000);//延迟5秒执行task,,且只执行一次,线程还在
    //        timer.schedule(timerTask,0,60000);//0表示没用延迟,立即执行,然后60000表示每隔1分钟执行一次task
            timer.schedule(timerTask,5000,60000);//延迟5秒后执行task,然后每隔1分钟执行一次task
        }
    }
    
    

    1.3 schedule 与 scheduleAtFixedRate 的区别

    • 关于上述介绍的 schedule 的4种调用情况,scheduleAtFixedRate 同样也有,最终效果也是一致的,我们这里就不介绍了,说说它两不一样的地方。什么时候不一样呢?当给他们设置指定开始任务的时间时,它们的区别就有了。
      主要是 public void scheduleAtFixedRate(TimerTask task, Date firstTime, long period) 方法 与 public void schedule(TimerTask task, Date firstTime, long period) 方法的区别。
    • 我们先看官网怎么说的:
      在这里插入图片描述
      在这里插入图片描述
    • 如果不是很明白看我们下面的效果图:
      在这里插入图片描述
      在这里插入图片描述

    小结

    • void schedule(TimerTask task, Date firstTime,long period)方法的任务的计划执行时间是从第一次实际执行任务开始计算的。
      如果执行任务的时间没有被延时,那么下一次任务的执行时间参考上一次任务的“开始”时的时间来计算
    • scheduleAtFixedRate 会计算首次调用时间,在执行时会先计算出错过的时间内 task 应执行的次数,再去按设定频率去执行。
    • 具体原理,还需要大家看源码分析!

    附代码

    package com.liu.susu.thread.task.timer;
    
    import java.time.LocalDateTime;
    import java.time.ZoneId;
    import java.time.format.DateTimeFormatter;
    import java.util.Date;
    import java.util.Timer;
    import java.util.TimerTask;
    
    /**
     * @FileName TimerTaskTest2
     * @Description
     * @Author susu
     * @date 2022-03-07
     **/
    public class TimerTaskTest2 {
        public static void main(String[] args) {
            Timer timer = new Timer();
            TimerTask timerTask = new TimerTask() {
                @Override
                public void run() {
                    System.out.println("task-->"+ LocalDateTime.now());
                }
            };
            Date firstDateTime = getFirstDateTime();
            System.out.println("firstDateTime-->"+firstDateTime+"<=====>now-->"+LocalDateTime.now()+"\n");
            timer.schedule(timerTask,firstDateTime,10000);
            timer.scheduleAtFixedRate(timerTask,firstDateTime,10000);
        }
        public static Date getFirstDateTime(){
            String dateStr = "2022-03-07 16:30:34";
            DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
            LocalDateTime localDateTime = LocalDateTime.parse(dateStr, dateTimeFormatter);
            Date date = Date.from(localDateTime.atZone(ZoneId.systemDefault()).toInstant());
            return date;
        }
    
    }
    
    

    2. 基于多线程的定时器——ScheduledExecutorService

    • ScheduledExecutorService 是一个接口,实现类是ScheduledThreadPoolExecutor,是通过 Executors 自动创建线程池的一种方式(newScheduledThreadPool 方式)
    • 关于线程池的创建可以看:
      详解Java多线程之线程池.
    • 关于 ScheduledThreadPoolExecutor,我们下面就简单说3个方法,完整代码如下:
    package com.liu.susu.thread.task.pool;
    
    import java.time.LocalDateTime;
    import java.util.concurrent.Executors;
    import java.util.concurrent.ScheduledExecutorService;
    import java.util.concurrent.TimeUnit;
    
    /**
     * @FileName ScheduledThreadPoolTest
     * @Description
     * @Author susu
     * @date 2022-03-07
     **/
    public class ScheduledThreadPoolTest {
        public static void main(String[] args) {
            ScheduledExecutorService executorService = Executors.newScheduledThreadPool(5);
            
            System.out.println("当前时间是-->"+LocalDateTime.now());
            
            //1.schedule--->只延迟执行,且只执行一次(不循环)
            executorService.schedule(new Runnable() {
                @Override
                public void run() {
                    System.out.println(Thread.currentThread().getName()
                            + "-->" + LocalDateTime.now());
                }
            },5,TimeUnit.SECONDS);//推迟5秒执行
    
            //2.scheduleAtFixedRate 推迟执行(initialDelay=0,不推迟),然后周期性循环执行task
            executorService.scheduleAtFixedRate(new Runnable() {
                @Override
                public void run() {
                    System.out.println(Thread.currentThread().getName()
                            + "-->" + LocalDateTime.now());
                    try {
                        Thread.sleep(5000);
                    } catch (Exception e) {
                        e.printStackTrace();
                    }
                }
            },5,10,TimeUnit.SECONDS);//推迟5秒执行,然后每10秒执行一次
    
            //3.scheduleWithFixedDelay 推迟执行(initialDelay=0,不推迟),然后周期性循环执行task
            executorService.scheduleWithFixedDelay(new Runnable() {
                @Override
                public void run() {
                    System.out.println(Thread.currentThread().getName()
                            + "-->" + LocalDateTime.now());
                    try {
                        Thread.sleep(5000);
                    } catch (Exception e) {
                        e.printStackTrace();
                    }
                }
            },5,10,TimeUnit.SECONDS);
    
        }
    }
    
    

    2.1 executorService.schedule

    • 创建并执行在给定延迟后启用的单次操作。
    • 效果图:
      在这里插入图片描述
    • 这个没啥可说的了,上面的内容看了的,这个很好理解的,我们主要说一下 scheduleAtFixedRate 与 scheduleWithFixedDelay 的区别。

    2.2 scheduleAtFixedRate 与 scheduleWithFixedDelay 区别

    • 来我们,先看官方怎么说的
      在这里插入图片描述
    • 这是什么意思呢,我们看看下面的效果就非常明白了

    2.2.1 executorService.scheduleAtFixedRate

    • 效果图:
      在这里插入图片描述
    • 上面大概明白怎么走的了吧,区别到底在哪里,先别急,看完下面的效果就明白了!

    2.2.2 executorService.scheduleWithFixedDelay

    • 效果图
      在这里插入图片描述
    • 现在明白二者的区别了吧

    2.2.3 小节

    • scheduleAtFixedRate:是以固定频率来执行线程任务,固定频率的含义就是可能设定的固定间隔时间不足以完成线程任务,但是它不管,达到设定的延迟时间了就要开始执行下一次任务了。
    • scheduleWithFixedDelay:不管线程任务的执行时间的长短,每次都要把任务执行完成后再延迟固定时间(设置的间隔时间)后再执行下一次的任务。

    3. 基于多线程的定时器(SpringBoot)

    3.1 提前了解 cron表达式和@Async异步

    3.2 @EnableScheduling 与 @Scheduled

    • 关于 @EnableScheduling :
      在SpringBoot项目中,在启动类或者定时任务类上添加 @EnableScheduling 注解来开启对定时任务的支持。
    • 关于 @Scheduled :
      如果在定时任务类中的方法上添加 @Scheduled 注解,则该方法是声明需要执行的定时任务。
    • @Scheduled 注解有几种类型参数,先截图下来,我们下面会简单根据例子介绍
      在这里插入图片描述

    3.3 @Scheduled 定时任务例子

    • 首先启动类上添加注解 @EnableScheduling ,下面不再提醒了。
      在这里插入图片描述

    3.3.1 关于 cron 表达式的

    • cron 表达式不是很清楚的,看我们上面提供的链接,此处不做解释了。

    3.3.1.1 cron 例1–>单个任务

    • 用注解 @Scheduled(cron = "0/5 * * * * ?") (每5秒执行一次),代码很简单,直接截图:
      在这里插入图片描述
    • 启动项目后,后台自动按cron表达式配置的执行任务,直接看运行效果:
      在这里插入图片描述
    (1)简单分析@Schedule默认定时任务的线程
    • 观察上面的执行结果,不难发现,Spring 的 Schedule 定时任务默认是单线程的。而且是默认所有定时任务都是在一个线程中执行(下面我们有多任务的例子)!
    • 这样的话,我们看到的只是代码层次的定时任务,而实际执行得过程是一个任务的开启需要等上一个任务的结束才行。尤其是当系统中有特别耗时的定时任务执行频繁的定时任务,执行频繁的任务需要等耗时的任务执行完才能执行,你说这算什么定时任务!
    • 会造成严重得后果就是如果我们有多个定时任务,一个卡死,其他全挂,嗯,就这样。
    • 问题分析出来了,解决是不是就有了,对,异步多线程!

    3.3.1.2 cron 例2–>多个任务(非异步)

    • 用异步前,我们不妨来写两个定时任务看看效果,先看两个耗时都短的任务:
      在这里插入图片描述
      很明显如果耗时短还不好观察,任务1是按定时5秒执行一次,任务2也按定时2秒执行一次,没看出来,但是能看出来是单线程的执行两个任务!。
    • 再来看一个耗时长,一个频繁执行的定时任务,我们让任务1睡一下就行了。
      在这里插入图片描述
      这样对比效果就很明显了吧,这明显不是我们开发中想要的实现方式,所以考虑异步,请往下…

    3.3.1.3 cron 例3–>多个任务(异步@Async)

    • 把上面的例子改成异步试试,很简单啥也不用,直接异步方法上加注解 @Async ,启动类加 @EnableAsync 注解即可。
      再说一下,这两个注解不太了解的,看下面文章,此处不做解释了。
      SpringBoot 自定义线程池以及多线程间的异步调用(@Async、@EnableAsync).
    • 修改后的代码如下(在例子3.3.1.2上修改):
      在这里插入图片描述
    • 效果如图:
      在这里插入图片描述
      可以看到在耗时任务1执行的过程中并不影响任务2定时任务的执行,也不影响任务1自己的定时任务,什么意思,意思就是你可以简单理解为同我们上述2.2.1中介绍的 executorService.scheduleAtFixedRate,即以固定频率来执行线程任务,就是在我们任务1中,设定的固定间隔时间5秒,而5秒不足以完成线程任务(需要10秒完成),但是它不管,达到设定的间隔时间5秒后就要开始执行下一次的任务1了(即:开启新的线程来执行)。

    3.3.1.4 cron 例4–>多个任务(异步@Async——自定义线程池)

    • 3.3.1.3 中,虽然实现了异步,但是 @Async 也存在一个问题,就是默认线程池的问题,这个在这里不做介绍,上面链接的文章里已经说的很清楚,不明白的先了解一下 @Async 。
    • 所以,我们用自定义线程池的方式实现异步定时任务
    • 代码如下(文字代码上面链接介绍异步的文章里都有,这里截图一下看看,明白逻辑就行了):
      在这里插入图片描述
      在这里插入图片描述
      在这里插入图片描述
    • 效果如下:
      在这里插入图片描述

    3.3.1.5 从配置文件读取 cron表达式 以及停掉 cron任务

    • 用配置文件的形式,主要方便我们以后更改任务的执行时间等。
    • 代码如图:
      在这里插入图片描述
      在这里插入图片描述
    (1)cron 例5–>用符号 “ - ”控制停止定时任务

    注意.properties 与.yml的区别写法

    • ① application.properties 中的 cron 表达式不能用双引号引起,而.yml中可以用双引号引起;
      在这里插入图片描述
      在这里插入图片描述
    • ② 在配置文件里配置让线程任务停掉,不是简单的注释掉,而是用减号符号 “-”,需注意的是两中配置文件写法不一样,yml中必须要加双引号(因为 - 在yml中是一个特殊的字符),application.properties 必须不能用双引号,这点需要注意。
      在这里插入图片描述
      在这里插入图片描述
    (2)cron 例6–>手动控制定时任务的开启和停止
    a. 分析 @EnableScheduling
    • 配置之前,我们先来分析一下源码,为什么启动类上加上 @EnableScheduling 注解就开启了对定时任务的支持了呢?好奇是吧,好奇就点呗,点进去看看…
      在这里插入图片描述
      在这里插入图片描述
      你如果感兴趣的话,可以继续往后点,自己欣赏源码也是打发时间的一种方式,哈哈哈哈!
      快烦了吧,说这么多什么意思呢?意思就是你可以不用这个注解 @EnableScheduling 让定时任务跑起来。怎么跑,先听解释:
    • 其实,任务方法上用的 @Scheduled 注解,是被一个叫做 ScheduledAnnotationBeanPostProcessor (上面最后一张截图里出现的)的类所拦截的,所以,根据源码的实现,我们也可以根据配置,决定是否创建这个 bean,如果有这个 bean ,定时任务正常执行,如果没有这个 bean,@Scheduled 就不会被拦截,那么定时任务肯定不会执行了了,嗯,就是这个道理。请往下看怎么实现:
    a. 配置文件设置定时任务的开关
    • 首先,启动类上的注解 @EnableScheduling 注释掉。
    • 然后,配置文件添加开关,如图:
      在这里插入图片描述
    • 然后,接下来我们说两种方式控制这个bean的创建
    • 方式一:接口 Condition 与注解 Conditional 结合
      在这里插入图片描述
      两种方式说完,我们再测试效果
    • 方式二:直接用注解 @ConditionalOnProperty
      在这里插入图片描述
    • 来,看一下效果吧,定时任务还是那两个任务
      在这里插入图片描述
      在这里插入图片描述
      ok了,就说这么多吧!

    3.3.2 其他类型参数——简单说

    • 如果目录里的 1 和 2 都看明白了,关于 @Scheduled 注解的其他参数真的没什么可说的了,比葫芦画瓢的事了,我们就简单举个例子就行了
      在这里插入图片描述

    4. springboot动态定时任务的实现

    5. 附项目工程代码

    展开全文
  • jenkins-定时执行测试任务

    千次阅读 2022-02-03 10:51:57
    当想要每个小时或者下班之后都去执行测试任务,我们不能每次都手动去运行程序,这时候我们就可以采用Jenkins来完成定时执行测试任务。 1. 在Jenkins首页,新建任务 2. 输入任务名,选择"Freestyle project",然后...

    当想要每个小时或者下班之后都去执行测试任务,我们不能每次都手动去运行程序,这时候我们就可以采用Jenkins来完成定时执行测试任务。

    1. 在Jenkins首页,新建任务

    2. 输入任务名,选择"Freestyle project",然后点击确定按钮

    3. 在build中选择"Execute window batch command"

    4. 在出现的窗口中输入命令(可以将这个窗口理解成doc窗口)

    1. cd 到项目路径下
    2. 运行可执行文件

     5. 在Build Triggers中勾选Build periodically,在弹出的窗口中即可编辑我们想要的时间安排。

     6. 编辑日程表

    1. 5个时间单位:需要输入5个数字,分别代表5个不同的时间单位:分钟,小时,日期,月份,星期
      1. 例:想让程序在1/25周二晚上9点自动执行一次:0 21 25 1 2
    2. 6个符号
      1. 空格:时间单位的间隔,有且只能有四个
      2. * 星号:表示所有可能的取值
        1. 例:0 21 * * * 每天晚上9点分别执行一次
      3. -横线:表示区间
        1. 例:0 21 * * 1-5 每周一到周五的晚上9点自动执行一次
      4. ,逗号:表示枚举
        1. 例:0 8,12,20 * * *每天的早上8点,中午12点,晚上20点分别执行一次
      5. /分号:表示间隔
        1. 例:*/30 * * * * 每隔30分钟执行一次
      6. H:用于分散负载
        1. 例:H/30 * * * *也是每隔30分钟执行一次,但不一定是整点和半点执行,可能在任何一个时间点执行,会自动找服务器的空闲时间执行,更推荐使用。

    7. 最后点击保存即可

    举例

    任务1:每天晚上下班后(晚上10点开始),进行测试:0 22 * * *

    任务2隔天晚上下班后(晚上10点以后),进行测试:H 22 */2 * *

    任务3:每月的10号20号下班后,进行测试:H 18 10,20 * *

    任务4:每周周2至周5进行测试:* * * * 2-5

    展开全文
  • 系统一般会有一些后台定时任务,假设我们使用quartz实现定时任务,那么有两个测试功能定时任务逻辑是否正确定时器cron表达式编写是否正确,触发时间是否正确定时任务逻辑测试如果定时任务在晚上11执行,我们...
  • Java使用定时任务

    千次阅读 2021-03-23 16:52:25
    前言:Java开发过程中经常会遇到使用定时任务的情况,比如在某个活动结束时,自动生成获奖名单,导出excel等。常见的有如下四种方式:Timer、ScheduledExecutorService、SpringTask、Quartz。 Java定时任务的四种...
  • 系统一般会有一些后台定时任务,假设我们使用quartz实现定时任务,那么有两个测试功能定时任务逻辑是否正确定时器cron表达式编写是否正确,触发时间是否正确定时任务逻辑测试如果定时任务在晚上11执行,我们...
  • linux定时任务_linux定时任务

    千次阅读 2020-10-29 03:11:04
    1.定时任务介绍1.1 crond是什么crond是linux系统中用来定期执行命令或指定程序的一种服务或软件。特殊要求:(秒级别)crond服务就无法搞定了,一般工作中写脚本用守护进程执行[root@shellbiancheng jiaobenlianxi]# ...
  • Java 定时任务表达式

    千次阅读 2021-11-02 17:23:17
    日常开发中,经常会遇到业务数据需要自动处理,这时定时任务就是个很好的方案。 在这里记录下经常使用到的定时任务的Cron(任务执行的频率),后续遇到会持续更新,欢迎大家在评论区提出日常中遇到的各种表达式 ...
  • Java定时任务调度框架

    千次阅读 2022-04-14 13:08:49
    Java定时任务调度框架1. 定时任务调度概述1.1 业务场景概述1.2 任务调度场景1.3 调度任务分类2. 定时任务调度详解2.1 Timer2.2 ScheduledExecutorService2.3 SpringTask2.4 Quartz2.5 xxl-job2.6 elastic-job 1. ...
  • 个人的定时任务 测试

    千次阅读 2017-04-07 14:37:18
    微信中 定时监测会员是否到期 如果快到期 则给会员发送模板消息 用linux中设置 crontab -e 设置定时任务 如果url带& 则需要加"\''去转义 ,然后 重启 service crond restart ,重启完毕开始执行,另外用 *...
  • linux定时任务

    2020-12-29 07:57:30
    第1章 定时任务介绍1.1 什么是定时任务?crond是linux系统中用来定期执行命令或指定程序任务的一种服务或软件。一般情况下,我们按装完操作系统后,默认遍会启动crond服务调度服务,在我们面前的系统安装及开机启动...
  • crontab 定时任务

    千次阅读 2022-03-29 10:41:12
    crontab 定时任务 通过crontab 命令,我们可以在固定的间隔时间执行指定的系统指令或 shell script脚本。时间间隔的单位可以是分钟、小时、日、月、周及以上的任意组合。这个命令非常适合周期性的日志分析或数据备份...
  • SPring Task定时任务

    千次阅读 2022-03-12 11:21:11
    1.定时任务的概述 在项目中开发定时任务应该是一种比较常见的需求,在Java中开发定时任务主要有三种方案:一是使用JDK自带的Timer,二是使用第三方组件Quartz',三是使用Spring Task。 Timer是JDK自带的定时任务...
  • Linux定时任务(详细)

    千次阅读 2021-09-03 18:56:22
    Linux定时任务 一、首先查看是否安装了crontab [root@master ~]# rpm -qa |grep crontab crontabs-1.11-6.20121102git.el7.noarch 出现crontabs-1.11-6.20121102git.el7.noarch代表已经安装 若未安装则执行下面 1....
  • 二、基于接口(SchedulingConfigurer) 前者相信大家都很熟悉,但是实际使用中我们往往想从数据库中读取指定时间来动态执行定时任务,这时候基于接口的定时任务就派上用场了。 三、基于注解设定多线程定时任务 一...
  • 在编辑页中设置定时任务的名称、循环次数、周期等信息,然后设置需要定时测试测试用例、测试的环境、测试完成后的通知方式等信息,点击保存即可。 生成的测试报告也支持发送到指定邮箱。 同时如果希望立即执行...
  • Jenkins 设置定时任务

    千次阅读 2022-02-21 16:15:30
    此处定时任务的格式遵循 cron 的语法(可以与 cron 的语法有轻微的差异)。具体格式,每行包含5个字段,依次为分钟、小时、日、月、星期几,并通过 Tab 或空格分隔。 如下图中示例的“每隔15分钟执行一次”为:H...
  • Linux定时任务-day23

    2021-05-16 17:37:21
    1.定时任务基本概述1.什么是crondcrond就是计划任务,类似于我们平时生活中的闹钟。定点执行。2.为什么要使用crondcrond主要是做一些周期性的任务,比如: 凌晨3定时备份数据。比如:11开启网站抢购接口,12...
  • 点击关注公众号,利用碎片时间学习序言SpringBoot创建定时任务,目前主要有以下三种实现方式:基于注解(@Scheduled): 基于注解@Scheduled默认为单线程,开启多个任务时,任务的执行时机会受上一个任务执行时间的...
  • mysql定时任务,每天定时执行

    千次阅读 多人点赞 2019-11-21 15:56:27
    这里我们实现一个定时任务,每天凌晨1执行一个存储过程,向用户表插入一条记录。 首先查看mysql数据库是否开启了事件计划 ,如果没有需要开启事件 查看事件计划状态 show variables like '%...
  • Python设置定时任务

    千次阅读 2020-12-20 11:45:57
    如果需要用Python实现定时任务,包括多长时间之后执行、每隔多久循环执行、每天的几执行等,都算定时任务。实现定时任务的方法很多,python自身的库也有多种方式可以实现。其中最简单好用的一个库我感觉是...
  • 定时任务实现原理详解

    千次阅读 2020-12-21 09:50:36
    在上篇文章中,我们简单的介绍了定时任务的使用方式,不同的架构对应的解决方案也有所不同,总结起来主要分单机和分布式两大类,本文会重点分析下单机的定时任务实现原理以及优缺点,分布式框架的实现原理会在后续...
  • 目录一、简介二、maven依赖三、核心配置3.1 配置文件application.yml3.2 属性配置3.3 配置自定义的TaskExecutor(重要)四、使用线程池实现定时任务五、运行结果六、参数设置(corePoolSize、queueCapacity、maxPool...
  • SpringBoot 如何执行定时任务

    千次阅读 2021-03-29 10:10:56
    SpringBoot 如何执行定时任务 工作中有需要应用到定时任务的场景,一天一次,一周一次,一月一次,一年一次,做日报,周报,月报,年报的统计,以及信息提醒,等,spring boot 提供了一个两种方式实现定时任务。 ...
  • 创建Oracle定时任务

    千次阅读 2022-03-18 11:19:06
    PLSQL 创建Oracle定时任务 用语句创建 1、创建任务执行的存储过程,如名称为testJob,向测试表中插入数据,如文章开头,此处省略。 2、创建一个 定时任务 job declare job number; BEGIN DBMS_JOB.SUBMIT( ...
  • PHP实现定时任务详解

    千次阅读 2021-03-24 10:06:11
    前几天写过一篇文章,利用单纯的php实现定时执行任务,但是效率不佳,对于linux来说用crontab实现更加合理。首先说说cron,它是一个linux下的定时执行工具。根用户以外的用户可以使用 crontab 工具来配置 cron 任务。...
  • php执行定时任务

    千次阅读 2021-05-03 05:52:08
    因为php不像jsp那么‘强大’,不能执行一些定时任务,所以有好多想定时实现的功能无法实现,或者虽然实现了,但终究是把负担加在了访客,或是管理员身上!因为很大一部分的是通过客服端 浏览器 请求时触发一个事件的...
  • 几种常用定时任务的使用

    千次阅读 2021-01-31 21:04:20
    实现定时任务的方案:1.使用Thread.sleep(1000)、2.使用jdk的Timer和TimerTask、3.使用DelayQueue队列、4.使用Quartz、5.使用Spring Task、6、使用分布式定时任务之XXL-JOB

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 72,703
精华内容 29,081
关键字:

定时任务测试点