- JDK 的Timer类
- SpringTask
- Quartz
SpringTask实现步骤:
- SpringBoot启动类添加@EnableScheduling 注解,开启定时任务功能。
- 编写定时任务,新建SchedulingTask类
- 在任务的类上写@Component,将当前的任务类注入到容器。
- 在任务方法上写@Scheduled,然后编写cron表达式。
package com.example.demo.Config; import org.springframework.scheduling.annotation.Scheduled; import org.springframework.stereotype.Component; import java.text.SimpleDateFormat; import java.util.Date; @Component public class SchedulingTask { //表示每隔3秒执行一次 // @Scheduled(fixedRate = 6000) // 表示方法执行完成后5秒再执行 @Scheduled(fixedDelay = 6000) // 表示每五秒执行一次 //@Scheduled(cron = "*/6 * * * * ?") public void TestTask() { SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); System.out.println(dateFormat.format(new Date())); } }
fixedDelay:你业务执行完毕后,6秒再执行。
fixedRate:不论你业务执行花费了多少时间,每隔6秒执行一次。
cron表达式:可以设置每天什么时候执行(在线Cron表达式生成器:https://cron.qqe2.com)
Quartz 实现步骤: