我需要描述@Scheduled注释的工作原理
预定有三种定义: fixedDelay , fixedRate 和 cron 。
虽然 fixedDelay 的周期将从每个前一次调用的完成时间开始计算,但 fixedRate 的周期将在每次调用的连续开始时间之间进行测量。
但 cron 期间怎么样?他将如何衡量?
修改:
我知道 cron 不是像 fixed 这两个信息的时期。我将以一个例子来描述我的问题。
示例方法需要2分钟才能完成。但是使用 @Scheduled -Annotation,我会让方法每分钟运行一次。
@Scheduled(fixedDelay = 1000)
public void exampleMethod(){}
fixedDelay将等到方法完成,然后等待一分钟。因此该方法将每3分钟运行一次。
@Scheduled(fixedRate = 1000)
public void exampleMethod(){}
fixedRate将在每次调用的连续开始时间之间等待一分钟。因此,该方法将每分钟运行一次,如果方法完成与否则无关紧要。
@Scheduled(cron = "0 * * * * *")
public void exampleMethod(){}
所以我将cron设置为每分钟运行一次。该方法是每分钟执行还是将等待方法完成?