Spring Scheduling
Annotation
@Scheduled: Spring で定時 タスクを作成 するために使用 します。- 属性
(fields) :
cron: Cron 式 を使用 して実行 頻度 を定義 。fixedDelay: 前回 のタスク終了 から次回 のタスク開始 までの固定 遅延 。パラメータ: long (ms)fixedDelayString:fixedDelayと同 じですが、文字列 や${...}設定 をサポート。fixedRate: 二 つのタスク開始 間 の固定 頻度 。前回 のタスク完了 を待 たない。fixedRateString: 同上 、文字列 設定 。initialDelay: 最初 のタスク実行前 の遅延 時間 。initialDelayString: 同上 、文字列 設定 。timeUnit: 時間 単位 を指定 、デフォルトはms(ミリ秒 )。zone: タイムゾーン (Timezone) を指定 。
- 属性
(fields) :
Cron 構文 例
0 0 0 * * ?: 毎日 午前 0時 に実行 。0 0/5 * * * ?: 5分 ごとに実行 。0 0 12 ? * MON-FRI: 平日 の正午 12時 。
ベストプラクティス
- 非同期
実行
: デフォルトでは、
@Scheduledは単一 スレッドで実行 されます。複数 のタスクがある場合 は、TaskSchedulerを設定 するか@Asyncを使用 してください。 - 外部化
設定
: Cron 式
を
${property.name}構文 でapplication.ymlに抽出 することを推奨 します。 - 例外 処理 : 定時 タスク内 の例外 がキャッチされない場合 、後続 の実行 が中断 される可能性 があります。