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:每个月的第三个星期,星期天执行,# 号只能出现在星期的位置。