前言
SpringBoot自带注解实现定时调度:@Scheduled。其它两种定时调度:
可能目前面向的还是使用,与Quartz的区别后续用到区别之处会补充。
代码
启动类
@EnableScheduling //开启Spring的定时调度注解
@SpringBootApplication
public class SubassemblyApplication {
public static void main(String[] args) {
SpringApplication.run(SubassemblyApplication.class, args);
}
}
自动注入类
@Component //bootapp启动的时候注入容器
public class ScheduledTask {
@Scheduled(cron = "0/2 * * * * ?")
public void test() {
System.err.println("Scheduled Test");
}
}
@Scheduled参数
fixedRate属性:上一个调用开始后再次调用的延时(不管是否执行完毕)
fixedDelay属性:等待上一个调用执行完后延迟的时长再次调用(等待执行完毕记时)
initialDelay属性:第一次执行调用的间隔事件,一般配上fixedDelay(每次间隔),并且优先级高于fixedDelay。
单位毫秒:
@Scheduled(initialDelay=1000*10 fixedDelay=1000 * 2)
cron属性:定时调度格式如下:
引用工具网站解释:
Java(Spring)
* * * * * *
- - - - - -
| | | | | |
| | | | | +----- day of week (0 - 7) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
| | | | +---------- month (1 - 12) OR jan,feb,mar,apr ...
| | | +--------------- day of month (1 - 31)
| | +-------------------- hour (0 - 23)
| +------------------------- min (0 - 59)
+------------------------------ second (0 - 59)
分钟字段设置 */5
表示每5分钟一次,注意:这里指的是能被5整除的分钟数。
如每五分钟执行一次:@Scheduled(cron = "0 */5 * * * ?")
,如果秒对应的参数为*的话,就是每五分钟执行60次(60秒)。这里*和?
并没有区别。
属性参考
参考链接——SpringBoot使用@Scheduled创建定时任务
PS:以BootApp启动哦!