SpringBoot框架中的简单定时任务
1、添加依赖,并在启动类上添加注解
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
</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 56 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:每个月的第三个星期,星期天执行,# 号只能出现在星期的位置。
- 0 */6 9-17 * * 每天上午9点到下午5点之间,每6分钟执行一次;
- 0 */6 * ? * MON-FRI 周一到周五,每6分钟执行一次;
- 0 6,16,26,36 * * * ? 在6,16,26,36分执行一次;
- 0 0 0,6,16 * * ? 在每天的0点,6点,16点都执行一次;
- 0 0 1 * * ? 每天凌晨1点执行一次;
- 0 0 1 1 * ? 每月1号凌晨1点执行一次;
- 0 0 1 L * ? 每月最后一天1点执行一次;
- 0 0 1 ? * L 每周星期天凌晨1点执行一次;
- 0 0 1 ? * 6L 每月的最后一个星期五凌晨1点执行一次;
- 0 0 1 ? * 6#3 每月的第三个星期五凌晨1点执行一次;

浙公网安备 33010602011771号