如何使用spring定时器

本文介绍了如何在SpringBoot中配置定时任务,包括使用YML配置文件设定每天凌晨3点执行的定时任务,并详细讲解了@Scheduled注解的cron表达式以及fixedDelay和fixedRate的区别。通过示例代码展示了如何实现定时任务的每秒执行,并解释了这两个参数的执行逻辑。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  • 单体定时任务
  • corn生成器:https://www.pppet.net/

yml配置文件

在这里插入图片描述

# 每天凌晨3点执行一次
job:
  transferNetworkJobCron: 0 0 3 * * ?

定时任务类

  • 这里的 @Scheduled(cron = "${job.transferNetworkJobCron:0/1 * * * * ? }")
  • 表示如果yml配置文件里没有编写job.transferNetworkJobCron的属性,则默认使用0/1 * * * * ?作为值,最终会解析成 @Scheduled(cron = "0/1 * * * * ?") 否则则使用配置文件所配置的属性值
@Component
@EnableScheduling
public class transferNetworkJob {


    //@Scheduled(cron="*/5 * * * * ?") //每五秒钟执行
    //@Scheduled(cron="0 0/30 * * * ?") //每半小时执行
    //@Scheduled(cron="0 0 3 * * ?") //每天凌晨三点执行
////    @Scheduled(cron="0 0/10 * * * ? ") //每十分钟执行
    @Scheduled(cron = "${job.transferNetworkJobCron:0/1 * * * * ? }")//每秒执行一次
    public void  findTransferNetwork(){
        System.out.println("ZeKi大帅比");
    }

}

相关注解

fixedDelay

  • fixedDelay非常好理解,它的间隔时间是根据上次的任务结束的时候开始计时的。比如一个方法上设置了fixedDelay=5*1000,那么当该方法某一次执行结束后,开始计算时间,当时间达到5秒,就开始再次执行该方法。
@Scheduled(fixedDelay = 5000) //5秒

fixedRate

  • 如果任务的处理时间大于fixedRate配置的时间,那么当任务结束的时候则会立马执行。如果是在相隔的时间段内处理完毕,假设设置的是5s,任务花了3s执行完毕,那么在2s后则会执行下一个任务。
@Scheduled(fixedRate= 5000) //5秒
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值