如何测量@Scheduled cron的周期?

时间:2014-04-07 07:52:08

标签: java spring cron spring-scheduled

我需要描述@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设置为每分钟运行一次。该方法是每分钟执行还是将等待方法完成?

2 个答案:

答案 0 :(得分:1)

Cron是一种描述作业何时运行的格式。你可以看到很多很好的例子here

答案 1 :(得分:0)

Cron不是perod,类似记录的格式表示Linux调度程序Cron中的周期性。