Spring cron 式に基づいて、コードを固定スケジュールで実行しようとしています。コードを毎日午前 1 時 1 分に実行したいと考えています。次の表現を試してみましたが、これは私にとってはうまくいきませんでした。ここの構文の何が問題になっていますか?
@Scheduled(cron = "0 1 1 ? * *")
public void resetCache() {
// ...
}
Spring cron 式に基づいて、コードを固定スケジュールで実行しようとしています。コードを毎日午前 1 時 1 分に実行したいと考えています。次の表現を試してみましたが、これは私にとってはうまくいきませんでした。ここの構文の何が問題になっていますか?
@Scheduled(cron = "0 1 1 ? * *")
public void resetCache() {
// ...
}
でメソッドに注釈を付けることができます@Scheduled(cron ="0 1 1 * * ?")
。
0 - 秒です
1~1分
1 - 1 日の 1 時間。
ジピナニの答えに欠けているもの
@Scheduled(cron = "0 1 1,13 * * ?", zone = "CST")
これは 1.01 と 13.01 で実行されます。パターンなしで 1 日に複数回ジョブを実行する必要がある場合に使用できます。
また、ゾーン属性は、リモート サーバーで展開を行う場合に非常に役立ちます。これは、Spring 4 で導入されました。
私が気づいたことの1つは、春のCronTriggerがcronではないということです。有効な cron 式 (cronmaker.com で検証できます) に 7 つのパラメーターが含まれてしまい、それを受け入れない場合があります。ほとんどの場合、最後のパラメーターを削除するだけで、すべて正常に動作します。