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点执行一次;