SpringBoot创建定时任务

1. 首先在启动类加 @EnableScheduling 注解,开启定时任务

@EnableScheduling

import org.springframework.scheduling.annotation.EnableScheduling;

@EnableScheduling // 开启定时任务

2. 然后在类中,导入Schedule包并添加注解

  1. 导包
import org.springframework.scheduling.annotation.Scheduled;
  1. 方法上加注解
//服务实现类
@Service
@Slf4j
public class 类名 extends ServiceImpl<泛型> implements XXXService {
	//定时任务,每15分钟执行一次
    @Scheduled(cron = "0 0/15 * * * ?")
    public void timingTask(){
        //设置时间格式,用来转换字符串
        DateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        //开始时间
        Date beginTime = new Date();
        //利用时间格式,把开始时间转为字符串
        String start = df.format(beginTime);
        log.info("定时任务开始,开始时间为:"+ start);
        //---------
        //这里可以写 需要执行的代码,时间到了会自动执行
        //----------
        //获取结束时间
        Date finishTime = new Date();
        log.info("定时任务结束,结束时间为:"+ df.format(finishTime));
        //开始时间 转为 长整型 Long
        Long begin = beginTime.getTime();
        //结束时间 转为 Long 类型
        Long end = finishTime.getTime();
        // 时间差 = 结束时间 - 开始时间,这样得到的差值是毫秒级别
        long timeLag = end - begin;
        //java计算时间差的代码,在我的另一篇文章里。
    }
}

3. @Scheduled 常用时间

  1. 每小时
//每小时0分0秒执行一次
@Scheduled(cron = "0 0 * * * ?")
  1. 每两小时
//每两个小时执行一次
@Scheduled(cron = "0 0 */2 * * ?")
  1. 每天凌晨两点
每天凌晨两点执行
@Scheduled(cron = "0 0 2 * * ?")

一个cron表达式,至少6个(有可能7个)用空格分隔的时间元素

位置第一个 *第二个 *第三个 *第四个 *第五个 *第六个 *第七个 *
含义
范围0~590~590~231~311~121~71970~2099
是否必填
requiredtruetruetruetruetruetruefalse
  • 其中 星期几 的意思,1~7 也可以写成 SUN,MON,TUE,WED,THU,FRI,SAT
  • 推荐一篇csdn文章: springboot整合定时任务(自动,手动).
    2022年2月这篇文章已被收藏 70,个人认为写的还是蛮详细的。
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值