@Schduled注释


1概要
@Schduledコメントは、spring bootが提供するタイミングタスク制御のためのコメントであり、主にタスクを制御するために、ある特定の時間ごとに実行したり、時間ごとに実行したりします.@EnbaleSchedulingに合わせて使用してください.構成@Scheduledは主に3つの構成実行時間の方式があります.cron、fixedRate、fixDelay.
2クロン
cronは@Schduledのパラメータです.文字列は5つのスペースで区切られています.6つの領域しか許可されていません.(7つではなく、7つの直接会議でエラーが発生します.)、それぞれ秒、分、時、日、月、週を表しています.
単位
許容値
ワイルドカードを許可する

0-59
を選択します
ポイント
0-59
を選択します
時刻
0-23
を選択します

1-31
を選択しますL

1-12またはJAN-DEC(大文字でも可)
を選択します
週間
1-7またはSUN-AT(大文字でもOK)
を選択します同前
2.1 cronワイルドカード
記号
意味

すべての値は秒フィールドに表示されます.毎月実行されます.
?
値を指定せずに、現在指定されているフィールドに関係する値は必要ありません.例えば、毎日実行しますが、週の数に関心を持つ必要はありません.周のフィールドを設定できますか?
を選択します.
区間は、秒の0-2のように、0秒、1秒、2秒を表します.
を選択します.
複数の値、例えば0秒、20秒、25秒でトリガします.秒のフィールドを0、20、25に設定できます.
を選択します.
インクリメントトリガー、たとえば秒のフィールドに0/3を設定し、0秒目から3秒ごとにトリガーします.
L
最後に、日フィールドまたは週フィールド上で、日フィールド上ではLを使用して、その月の最後の日を表し、週フィールド上では3 Lを使用して、今月の最後の木曜日を表します.
W
日本のフィールドでのみ使用できます.一番近いこの日の平日を表します.日指で働くのは月曜日から金曜日までです.
同前
週のフィールドでだけ許されます.毎月の第何週目の数を表します.例えば、2〓3、毎月の第3火曜日です.
2.2 cronの例
@Scheduled(cron = "0 * * * 1 SAT") //   1         0     
@Scheduled(cron = "0 0 0 1 Jan ?") //   1  1  0 0 0   
cronはプレースホルダをサポートします.設定ファイルにあれば
cron = 2 2 2 2 2 ?
規則
@Scheduled(cron = "${cron}")
毎年の二月二日の二時二分二秒を表します.
3 fixedRate
3.1 fixedRate
fixedRateは、前回の実行時間からどれぐらいの時間で実行されるかを表し、ms単位で.
@Scheduled(fixedRate = 1000 * 5)
前回の実行から5秒後に実行します.
3.2 fixedRateString
似たようなパラメータがあります.fixedRateStringといいます.文字列の形式で、プレースホルダをサポートします.
@Scheduled(fixedRateString = "1000")
前回から1秒を実行してから実行します.プロファイルに該当する属性があれば、アプリケーション.propertiesに属性をプレースホルダで取得できます.
interval=2000
使用できます
@Scheduled(fixedRateStirng="${interval}")
2秒間隔を表します
4 fixed Delay
4.1 fixed Delay
fixedDelayとfixedRateは似ていますが、fixedRateは前回の開始後の時間計測です.fixedDelayは前回の終了後の時間計測です.つまり、fixedDelayは前回の実行後どれぐらいの時間がかかりますか?単位もmsです.
@Scheduled(fixedDelay = 1000 * 3600 * 12) //               
4.2 fixed DelayString
fixed RateStringと同様に、サポートプレースホルダです.
@Scheduled(fixedDelayString = "${fixedDelay}")
5 initial Delay
5.1 initial Delay
initial Delayは、最初の遅延時間がどれぐらい後に実行されるかを示しています.単位msは、その後、cron/fixed RateString/fixed Delay/fixed Delay/fixdelayStringで指定された規則に従って実行されます.
@Scheduled(initialDelay=1000,fixedRate=1000) //      1s
5.2 initial DelayString
initial Delayと似ていますが、文字列です.プレースホルダをサポートします.
@Scheduled(initialDelayString = "${initialDelay}",cron = "0 0 0 14 4 ?") 
//      initialDelay         ,    4 14 0 0 0