创建定时任务很简单,只需要在方法上面,使用@Scheduled注解即可。
前置条件:
1、在启动类Application上面添加注解@EnableScheduling
2、定时任务方法所在的类上面需要有@Component注解
3、在启动类Application上面指定的扫描路径要包含定时任务所在类位置。
@ComponentScan({“com.xx.xx.*”,“com.yy.yy.*”})
@SpringBootApplication
@EnableScheduling
@ComponeScan({"com.xx.xx.*","com.yy.yy.*"})
public class Application {
...
}
1 cron表达式指定定时器执行时间
@Component
public class ScheduldJob {
// 固定每天1点执行,无论上一次执行完没有,到时间会再执行。
@Scheduled(cron = "0 0 1/1 * ?")
public void task() {...}
}
可根据不同的需求定义不同的cron表达式达到执行效果。
2 fixedRate 和 fixedRateString 指定间隔时间
这两个参数是一个效果,只是fixedRate的值是long型,fixedRateString的值是字符串型。
单位毫秒。
// 每间隔两小时执行一次。任务在服务启动时会执行一次,在上一次执行开始之后,再间隔两小时执行。注意是从上一次开始执行算的间隔时间。
@Scheduled(fixedRateString = "7200000")
public void test() {...}