0

@Scheduledアノテーションがどのように機能するかを説明する必要があります。Scheduled には、 fixedDelayfixedRate、およびcron
の 3 つの定義があります。fixedDelay の期間は、先行する各呼び出しの完了時刻から測定されますが、fixedRateの期間は、各呼び出しの連続する開始時刻の間で測定されます。

しかし、クーロン期間はどうですか?彼はどのように測定されますか?

編集cronは、両方の固定
情報のような期間ではない ことを知っています。私の質問を例で説明します。

example-method は、完了するまでに 2 分かかります。しかし、 @Scheduled -Annotationを使用すると、メソッドを毎分実行できます。

@Scheduled(fixedDelay = 1000)
public void exampleMethod(){}

fixedDelay はメソッドが完了するまで待機し、その後 1 分間待機します。したがって、メソッドは 3 分ごとに実行されます。

@Scheduled(fixedRate = 1000)
public void exampleMethod(){}

fixedRate は、各呼び出しの連続する開始時間の間に 1 分間待機します。したがって、メソッドは毎分実行され、メソッドが完了したかどうかは関係ありません。

@Scheduled(cron = "0 * * * * *")
public void exampleMethod(){}

そこで、cron を毎分実行するように設定しました。メソッドは毎分実行されますか、それとも cron はメソッドが完了するまで待機しますか?

4

2 に答える 2

0

Cron は perod ではありません。同様の形式のレコードは、Linux スケジューラCronの周期性を示します。

于 2014-04-07T08:01:02.380 に答える