pom.xml中导入必要的依赖:
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.0.1.RELEASE</version>
</parent>
<dependencies>
<!-- SpringBoot 核心组件 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
</dependencies>
@EnableScheduling 使用@EnableScheduling 注解开启功能,自动扫描
@Scheduled(cron = “0 0/45 * * * *”) // 使用 corn表达式定义执行的周期时间
* 第一位,表示秒,取值0-59
* 第二位,表示分,取值0-59
* 第三位,表示小时,取值0-23
* 第四位,日期天/日,取值1-31
* 第五位,日期月份,取值1-12
* 第六位,星期,取值1-7,星期一,星期二...,注:不是第1周,第二周的意思
另外:1表示星期天,2表示星期一。
* 第7为,年份,可以留空,取值1970-2099
常用的表达式:
"0 0 10,14,16 * * ?" 每天上午10点,下午2点,4点
"0 0/30 9-17 * * ?" 朝九晚五工作时间内每半小时
"0 0 12 ? * WED" 表示每个星期三中午12点
"0 0 12 * * ?" 每天中午12点触发
"0 15 10 ? * *" 每天上午10:15触发
"0 15 10 * * ?" 每天上午10:15触发
"0 15 10 * * ? *" 每天上午10:15触发
"0 15 10 * * ? 2005" 2005年的每天上午10:15触发
"0 * 14 * * ?" 在每天下午2点到下午2:59期间的每1分钟触发
"0 0/5 14 * * ?" 在每天下午2点到下午2:55期间的每5分钟触发
"0 0/5 14,18 * * ?" 在每天下午2点到2:55期间和下午6点到6:55期间的每5分钟触发
"0 0-5 14 * * ?" 在每天下午2点到下午2:05期间的每1分钟触发
"0 10,44 14 ? 3 WED" 每年三月的星期三的下午2:10和2:44触发
"0 15 10 ? * MON-FRI" 周一至周五的上午10:15触发
"0 15 10 15 * ?" 每月15日上午10:15触发
"0 15 10 L * ?" 每月最后一日的上午10:15触发
"0 15 10 ? * 6L" 每月的最后一个星期五上午10:15触发
"0 15 10 ? * 6L 2002-2005" 2002年至2005年的每月的最后一个星期五上午10:15触发
"0 15 10 ? * 6#3" 每月的第三个星期五上午10:15触发
cron表达式 含义2
0 * * * * ? 每分钟触发一次
0 0 * * * ? 每小时触发一次
0 0 1 * * ? 每天凌晨1点触发一次
0 30 1,12 * * ? 每天凌晨1:30和12:30各触发一次
0 * 1,13 * * ? 每天1:00到1:59以及13::00到13::59,每分钟触发一次
0 * 1 * * ? 每天凌晨1:00到1:59,每分钟触发一次
0 0 * 1 * ? 2019 在2019年里每个月1号的每一个小时触发一次
59 59 23 L 6 ? 每年的6月的最后一天的23:59:59分触发一次
0 0 24 L * ? 每个月的最后一天的24点触发一次
0 0/10 * * * ? 每隔10分钟执行一次,比如从9:05开始执行,9:10、9:20、9:30…等都会触发一次
0 */10 * * * ? 每隔10分钟执行一次 ,比如从9:05开始执行,9:15、9:25、9:35…等都会触发一次,和上面的区别是:起始的参照时间点不同
0 0 9-18 * * ? 每天的9点到18点的每隔整点触发一次
0 0 1 ? * 4L 每个月最后一个周三的凌晨1点触发一次
0 0 0 ? * 2 每周一的0点触发一次
0 0 24 ? * 6 每周五的24点触发一次
@PostConstruct
Java中该注解的说明:
@PostConstruct该注解被用来修饰一个非静态的void()方法。被@PostConstruct修饰的方法会在服务器加载Servlet的时候运行,并且只会被服务器执行一次。PostConstruct在构造函数之后执行,init()方法之前执行。
通常我们会是在Spring框架中使用到@PostConstruct注解 该注解的方法在整个Bean初始化中的执行顺序:
Constructor(构造方法) -> @Autowired(依赖注入) -> @PostConstruct(注释的方法)
@Configuration
@EnableScheduling
@Slf4j
public class ParkingResourceRedisTask {
@Resource
private RedisUtils redisUtils;
@Scheduled(cron = "0 0/45 * * * *")
@PostConstruct
public void getParkingResourceTask() {
log.info("定时任务执行了");
int type = 0;
do {
String cantonName = ParkingNameFormEnum.getName(type);
this.setRedis(cantonName,type);
type++;
}while(type<8);
}
private void setRedis(String cantonName,int type){
}
}
0 条评论