0

我需要描述@Scheduled注释是如何工作的。
Scheduled 有三个定义:fixedDelayfixedRatecronfixedDelay
的周期将从每个先前调用的完成时间开始测量,而fixedRate的周期将在每个调用的连续开始时间之间测量。

但是cron周期呢?他将如何衡量?

编辑
我知道cron不是像两个固定信息这样的时期。我将用一个例子来描述我的问题。

一个示例方法需要 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 设置为每分钟运行一次。该方法是每分钟执行一次,还是 cron 会等到该方法完成?

4

2 回答 2

1

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

于 2014-04-07T08:04:28.370 回答
0

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

于 2014-04-07T08:01:02.380 回答