SpringBoot使用定时任务(零xml配置)

本文介绍如何在SpringBoot中使用定时任务,包括零配置开启方式及Cron表达式的应用。通过实例展示了在启动类或指定配置类上添加@EnableScheduling注解的方法,并解释了Cron表达式的构成及其在定时任务中的作用。

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

一、SpringBoot使用定时任务

SpringBoot零配置开启定时任务,有两种情况:

  • 在启动类添加注解@EnableScheduling
  • 在指定的配置类上添加注解@EnableScheduling

如果定时任务全部提取成一个项目,建议在启动类上面添加注解;如果某个项目中有个别定时任务,那么只需要在指定的类上面添加注解即可。

代码如下:

@Configuration
@EnableScheduling
public class SongsirDemoJob {

    private static final Logger log = LoggerFactory.getLogger(SongsirDemoJob.class);
    // 每30秒执行一次
    @Scheduled(cron = "*/30 * * * * ?")
    public void work() {
        long start = System.currentTimeMillis();
        log.info("\r\n***************开始执行定时任务*****************");
        // doSomething
        try {
            Thread.sleep(2000);
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
        log.info("耗时:" + (System.currentTimeMillis() - start));
        log.info("\r\n***************定时任务结束*****************\n\n\n");
    }
}

执行效果如下:
在这里插入图片描述
上面使用了Cron表达式,下面简单介绍一下。

二、Cron表达式

  • cron表达式由6个或者7个域组成,中间由空格隔开
  • 6个域分别表示 Seconds Minutes Hours DayofMonth Month DayofWeek
  • 7个域分别表示 Seconds Minutes Hours DayofMonth Month DayofWeek Year
  • 其中*表示任意值,比如在Minutes使用 *,表示任意分钟都执行, */2表示每两分钟执行一次, */30每30分钟执行一次
  • 上面定时任务我使用了 */30 * * * * ?,即表示每30秒执行一次。

具体请参考博文:https://www.cnblogs.com/junrong624/p/4239517.html

其中Cron表达式配置与反解析请使用:
http://cron.qqe2.com/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值