Springboot 中Scheduled使用问题的记录


Springboot 中Scheduled使用问题的记录

@Scheduled(fixedRate=5000):上一次开始执行时间点后5秒再次执行; 如果开始后5秒内任务没有处理完,则第6秒不会新开始任务,等当前任务执行完毕之后继续执行
@Scheduled(fixedDelay=5000):上一次执行完毕时间点5秒再次执行; 避免了上述情况。
@Scheduled(initialDelay=1000, fixedDelay=5000):第一次延迟1秒执行,然后在上一次执行完毕时间点5秒再次执行;避免上述情况。
@Scheduled(cron="* * * * * ?"):按cron规则执行;和第一次执行时间有关系,如果中间超期,超过了每次的间隔时间,需要注意
比如 */20 * * * * ?  每次执行时间是30秒 开始执行时间是 14:00:00
理论上cron的执行是 
14:00:00
14:00:20
14:00:40
14:01:00
14:01:20
14:01:40
则第一次执行是14:00:00  执行30秒, 跳过了14:00:20的执行时间,所以下次执行时间是 14:00:40
依次类推: 30秒执行完后是 14:01:10 则继续跳过,然后执行下次的14:01:20

猜你喜欢

转载自blog.csdn.net/weisong530624687/article/details/109825144
今日推荐