我需要描述 @Scheduled 如何注释有效。
Scheduled 有 3 种定义:fixedDelay、fixedRate 和 cron。
虽然 fixedDelay 的周期将从每次调用的完成时间开始测量,fixedRate 的周期将从每次调用的连续开始时间之间测量。
但是 cron 周期呢?如何衡量他?
编辑:
我知道cron不是像两个固定信息那样的周期。我将用一个例子来描述我的问题。
示例方法需要 2 分钟才能完成。但是使用@Scheduled注释,我会让该方法每分钟运行一次。
@Scheduled(fixedDelay = 1000)
public void exampleMethod(){}
fixedDelay会等到该方法完成,然后他等待一分钟。因此该方法将每 3 分钟运行一次。
@Scheduled(fixedRate = 1000)
public void exampleMethod(){}
fixedRate 将在每次调用的连续开始时间之间等待一分钟。因此该方法将每分钟运行一次,无论该方法是否完成。
@Scheduled(cron = "0 * * * * *")
public void exampleMethod(){}
所以我将 cron 设置为每分钟运行一次。该方法会每分钟执行一次还是 cron 会等待该方法完成?
最佳答案
Cron 是一种描述作业何时运行的格式。你可以看到很多很好的例子here
关于java - 如何测量@Scheduled cron 的周期?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22906536/