SpringBoot框架中的简单定时任务
1、添加依赖,并在启动类上添加注解
<dependency>
<groupId>org.springframework.bootgroupId>
<artifactId>spring-boot-starterartifactId>
dependency>
@SpringBootApplication
@EnableScheduling
public class SpringbootQuartzApplication {
public static void main(String[] args) {
SpringApplication.run(SpringbootQuartzApplication.class, args);
}
}
2、定时任务创建
第一种:
@Component
public class SchedulerJob {
// 每10秒执行一次
@Scheduled(cron = "*/10 * * * * ?")
private void process(){
System.out.println("Hello World");
}
}
第二种:
@Component
public class SchedulerJob2 {
// 每10秒执行一次
@Scheduled(fixedRate = 10000)
private void process(){
System.out.println("Hello World");
}
}
参数说明
@Scheduled 参数有两种定时的设置,第一种是 cron="*/10 * * * * ?",第二种是 fixedRate = 10000,两种都可表示每10秒执行一次任务。
cron一定有七位数,最后一位是年,SpringBoot定时方案只需要设置六位即可:
- 第一位, 表示秒, 取值是0 ~ 59
- 第二位, 表示分. 取值是0 ~ 59
- 第三位, 表示小时, 取值是0 ~ 23
- 第四位, 表示天/日, 取值是0 ~ 31
- 第五位, 表示月份, 取值是1 ~ 12
- 第六位, 表示星期, 取值是1 ~ 7, 星期一,星期二..., 还有 1 表示星期日
- 第七位, 年份, 可以留空, 取值是1970 ~ 2099
例如:
- 0 0 6 * * ? :每天 6 点执行;
- 0 6 3 * * ?:每天 3 点 6 分执行;
- 0 6 3 ? * *:每天 3 点 56 分执行,与上面作用相同;
- 0 5/10 3 * * ?:每天 3 点的 5 分、15 分、25 分、35 分、45 分、55分这几个时间点执行;
- 0 10 3 ? * 1:每周星期天,3 点 10 分执行,注,1 表示星期天;
- 0 10 3 ? * 1#3:每个月的第三个星期,星期天执行,# 号只能出现在星期的位置。