定时任务@Scheduled参数详解

本文详细介绍了Spring中@Scheduled注解的使用,特别是initialDelay和fixedRate/fixedDelay参数的区别。通过实例展示了当任务耗时超过定时周期时,如何影响任务执行。在@Async异步执行情况下,fixedRate和fixedDelay的表现相同,不受任务执行时间影响。
摘要由CSDN通过智能技术生成

定时任务@Scheduled

任务间隔2秒,处理耗时5秒.

  	@Async
    @Scheduled(initialDelay = 5000,fixedRate = 2000)
//    @Scheduled(initialDelay = 5000,fixedDelay = 2000)
    public void test() {
        LogUtils.info("定时任务开始执行:[{}]", sf.format(new Date()));
        try {
            Thread.sleep(5000);
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
    }

initialDelay = 5000 : 初始化延迟执行时间.

@Async 关闭

fixedDelay = 2000 ,任务耗时+定时周期时间 = 下次执行时间

2020-10-23 18:11:24.814 [scheduling-1] INFO  com.wmang.schedule.basic.util.LogUtils - 定时任务开始执行:[2020-10-23 18:11:24]
2020-10-23 18:11:31.815 [scheduling-1] INFO  com.midea.mgp.carrier.basic.util.LogUtils - 定时任务开始执行:[2020-10-23 18:11:31]
2020-10-23 18:11:38.816 [scheduling-1] INFO  com.midea.mgp.carrier.basic.util.LogUtils - 定时任务开始执行:[2020-10-23 18:11:38]
2020-10-23 18:11:45.816 [scheduling-1] INFO  com.midea.mgp.carrier.basic.util.LogUtils - 定时任务开始执行:[2020-10-23 18:11:45]
2020-10-23 18:11:52.817 [scheduling-1] INFO  com.midea.mgp.carrier.basic.util.LogUtils - 定时任务开始执行:[2020-10-23 18:11:52]

fixedRate = 2000 任务执行完才会开始下次任务执行.周期计算不加任务耗时

2020-10-23 18:13:34.745 [scheduling-1] INFO  com.midea.mgp.carrier.basic.util.LogUtils - 定时任务开始执行:[2020-10-23 18:13:34]
2020-10-23 18:13:39.745 [scheduling-1] INFO  com.midea.mgp.carrier.basic.util.LogUtils - 定时任务开始执行:[2020-10-23 18:13:39]
2020-10-23 18:13:44.745 [scheduling-1] INFO  com.midea.mgp.carrier.basic.util.LogUtils - 定时任务开始执行:[2020-10-23 18:13:44]
2020-10-23 18:13:49.746 [scheduling-1] INFO  com.midea.mgp.carrier.basic.util.LogUtils - 定时任务开始执行:[2020-10-23 18:13:49]
2020-10-23 18:13:54.746 [scheduling-1] INFO  com.midea.mgp.carrier.basic.util.LogUtils - 定时任务开始执行:[2020-10-23 18:13:54]
2020-10-23 18:13:59.746 [scheduling-1] INFO  com.midea.mgp.carrier.basic.util.LogUtils - 定时任务开始执行:[2020-10-23 18:13:59]
@Async 开启

fixedDelay = 2000 或者 fixedRate = 2000 效果是一样的.不会受到任务执行耗时影响

2020-10-23 18:10:10.959 [SimpleAsyncTaskExecutor-1] INFO  com.midea.mgp.carrier.basic.util.LogUtils - 定时任务开始执行:[2020-10-23 18:10:10]
2020-10-23 18:10:12.954 [SimpleAsyncTaskExecutor-2] INFO  com.midea.mgp.carrier.basic.util.LogUtils - 定时任务开始执行:[2020-10-23 18:10:12]
2020-10-23 18:10:14.955 [SimpleAsyncTaskExecutor-3] INFO  com.midea.mgp.carrier.basic.util.LogUtils - 定时任务开始执行:[2020-10-23 18:10:14]
2020-10-23 18:10:16.954 [SimpleAsyncTaskExecutor-4] INFO  com.midea.mgp.carrier.basic.util.LogUtils - 定时任务开始执行:[2020-10-23 18:10:16]
2020-10-23 18:10:18.954 [SimpleAsyncTaskExecutor-5] INFO  com.midea.mgp.carrier.basic.util.LogUtils - 定时任务开始执行:[2020-10-23 18:10:18]

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值