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点执行一次;
posted @ 2021-12-09 15:37  北国浪子  阅读(144)  评论(0编辑  收藏  举报