scheduled⼀分钟执⾏⼀次_Spring中使⽤@Scheduled创建定
时任务
Apple iPhone 11 (A2223) 128GB ⿊⾊ 移动联通电信4G⼿机 双卡双待
4999元包邮
去购买 >
⼀、定时任务触发条件
1、在 Application 启动类上添加:@EnableScheduling
2、含定时⽅法的类上添加注解:@Component,该注解将定时任务类纳⼊ spring bean 管理。
3、在定时⽅法上写上:@Scheduled(cron = "0 0/1 * ?"),该 cron 表达式为每⼀分钟执⾏⼀次⽅法。
⼆、@Scheduled⽤法
1、fixedDelay
@Scheduled(fixedDelay = 5000)
public void testFixedDelay(){
try {
log.info("当前时间:" + w());
Thread.sleep(3000);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
每个任务延迟3秒,然后打印当前时间。
fixedDelay规律总结:
前⼀个任务执⾏结束后,再等待5秒,然后执⾏第⼆个任务。
2、fixedRate
@Scheduled(fixedRate = 5000)
public void testFixedRate(){
try {
log.info("当前时间:" + w());
Thread.sleep(3000);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
任务启动后,每隔5秒执⾏⼀次任务。
如果将延时时间修改为8秒,则输出变为8秒,如下图所⽰:
fixedRate规律总结:
假如设置定时任务每5秒⼀执⾏,如果前⼀个任务⽤时超过了5秒,则等前⼀个任务完成后就⽴刻执⾏第⼆次任务。如果前⼀个任务⽤时⼩于5秒,则等满⾜5秒以后,再执⾏第⼆次任务。
3、Corn表达式详解(常⽤)
Corn 表达式可⽤ 秒、分、时、天、周、⽉、年 来表⽰:
秒 分 时 天 周 ⽉ 年
0 * 14 * * ? * : 代表每天从14点开始,每⼀分钟执⾏⼀次。
0 0 14 * * ? * : 代表每天的14点执⾏⼀次任务。
Corn ⽰例:每2分钟执⾏⼀次。
@Scheduled(cron = "0 0/2 * * * ?")
public void test() {
int j = 0;
schedule用法及搭配for (int i = 0; i < 10; i++) {
log.info("Scheduled测试");
j++;
log.info("j的值为:" + j);
try {
Thread.sleep(1000 * 20);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
效果:
总结:
如上述代码所⽰,设置 test() ⽅法每2分钟执⾏⼀次。但如果前⼀个任务执⾏时长超过了2分钟,则第⼆个任务会等待前⼀个任务完成后的⼀段时间后再执⾏第⼆个任务。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论