Scheduling Tasks
Posted aeolian
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Scheduling Tasks相关的知识,希望对你有一定的参考价值。
官方文档
https://spring.io/guides/gs/scheduling-tasks/
官方文档详细介绍了@Scheduled中fixedRate,fixedDelay,cron的用法
fixedRate代表调用频率,单位为ms,如果调用频率设为5000ms,那么当你第一次调用占用2秒时等待3秒会第二次调用,当你第二次调用占用5秒时结束会立马第三次调用。
fixedDelay代表间隔时间,单位为ms,即每次调用完成时间和下次调用都相隔5000ms。
cron表达式,看官网文档
验证
情况一,程序执行时间小于延迟时间
设置延迟5秒时,执行时间为3秒
@Scheduled(fixedDelay=5000) public void execute() throws InterruptedException { System.out.println("调用时间"+CommonTool.getNowDateStr()); Thread.sleep(3000); }
发现两次开始调用时间为8秒刚好为执行时间+等待时间
情况二,程序执行时间大于延迟时间
设置延迟5秒,并且方法调用时间为6秒时
@Scheduled(fixedDelay=5000) public void execute() throws InterruptedException { System.out.println("调用时间"+CommonTool.getNowDateStr()); Thread.sleep(6000); }
发现间隙为11,也为执行时间+等待时间
以上是关于Scheduling Tasks的主要内容,如果未能解决你的问题,请参考以下文章
十springboot集成定时任务(Scheduling Tasks)
Spring Boot文档阅读笔记-Scheduling Tasks
Spring Boot文档阅读笔记-Scheduling Tasks