Springboot中上一个定时任务没执行完,是否会影响下一个定时任务

提示:本文内容属于学习记录

Springboot中上一个定时任务没执行完,是否会影响下一个定时任务执行分析及结论


前言

spring boot现在已经广泛应用了,应用过程中,或多或少都会遇到使用定时任务的情况,这篇文章简单介绍了第一个定时任务未执行完成的时候,是否会影响到下一个定时任务。


一、在springboot中使用定时任务的步骤

1、在启动类上加上注解:@EnableScheduling,表示允许定时任务执行
2、定时任务需要在类上加上@Component或者其衍生类(Controller、Service等),用于纳入Spring容器管理。
3、在需要定时任务方法上增加注解@Scheduled,注解的参数是定时任务执行时机

二、使用步骤

1.举个栗子(简单测试)

代码如下:

// 示例代码:验证定时任务阻塞问题
@Scheduled(cron = "0/1 * * * * ?")
public void test1() {
    // 每秒执行一次
    System.out.println("scheduler1 执行: " + Thread.currentThread() + "-" + DateTime.now());
    try {
        Thread.sleep(5*1000);  // 5s
    } catch (Exception e) {
        System.out.println(e.toString());
    }
}

总结

1、定时任务默认是单线程的。所以默认情况下,上一个定时任务没有执行完,下一个定时任务是不会开始的。
2、上一个任务没执行完,下一个任务会阻塞,待上一个执行完后,下一个定时任务不是立刻执行,而是需要等待1s(定时任务cron时间)才会执行。可以理解成是上一个任务执行完,才会开始计时。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值