このトピックでは、夏時間 (DST) の移行がタスクインスタンスの生成とスケジュール時刻にどのように影響するかについて説明します。また、DST を採用しているリージョンでこれらの移行を処理するための DataWorks のポリシーについても説明します。
仕組み
DataWorks は夏時間の切り替えを自動的に処理し、移行日にもタスクが正しく実行されるようにします。米国西部リージョンにおける時間単位のタスクを例に、DataWorks が DST 移行のロジックをどのように処理するかを以下に示します。
-
DST 開始時:
-
インスタンス数: DST は
02:00に開始します。時計が 1 時間進み、時刻が02:00から03:00に移行します。その結果、02:00にはインスタンスが生成されず、時間単位のタスクではこの日に 23 個のインスタンスが生成されます。 -
インスタンスのスケジュール時刻: この時間の移行により、一部のタスクのスケジュール実行時刻が調整されます。たとえば、通常は
04:00にスケジュールされる時間単位のタスクの 4 番目のインスタンスは、DST が開始する日には05:00にスケジュールされます。
説明-
DST が開始する日に、日次、週次、または月次のタスクがスキップされた時間帯にスケジュールされている場合、タスクは実行されず、システムはそのインスタンスを ドライラン に設定します。
-
この日、
03:00から 10 分を引くと01:50になります。
-
-
DST 終了時:
インスタンス数: 時間単位のタスクは 24 個のインスタンスを生成します。
02:00の時間帯に 2 つのインスタンスが生成されますが、2 回目の02:00のインスタンスのみが保持されます。説明この日、
03:00から 10 分を引くと02:50になります。
制限事項
DST の移行は、夏時間を採用しているリージョンのタスクにのみ影響します。
DST 開始時の影響
影響 1: インスタンスの生成
-
シナリオ 1: 時間単位および分単位のタスクへの影響。
以下のように構成された時間単位のタスクを考えます。通常の条件下では、1 時間に 1 つのインスタンス、1 日に合計 24 個のインスタンスが生成されます。DST が開始する日には、
02:00のインスタンスがスキップされるため、23 個のインスタンスしか生成されません。説明DST は
02:00に開始します。時計が 1 時間進み、02:00から03:00に移行します。したがって、02:00にはインスタンスは生成されません。スケジューリング構成は 時間間隔 モードです。開始時刻は 00:00、終了時刻は 23:59、有効日は常に有効に設定されています。これは cron 式
00 00 00-23/1 * * ?に対応します。 -
シナリオ 2: 日次タスクへの影響。
日次タスクは DST が開始する日にも 1 つのインスタンスを生成しますが、その実行はスケジュール時刻に依存します。
-
スケジュール時刻が
02:00 から 03:00の間である場合、システムはスケジュール時刻を 1 時間遅らせ、インスタンスを Empty run に設定します。 -
スケジュール時刻が
02:00 から 03:00の範囲外である場合、タスクは正常に実行されます。
スケジューリング構成では、スケジューリング周期は日次に、スケジュール時刻は
02:00に、有効日は常に有効に設定されています。これは cron 式00 00 02 * * ?に対応します。 -
影響 2: パラメーター置換
-
シナリオ 1: タスクのスケジュール時刻が
03:00で、スケジューリングパラメーターが$[hh24-1/24]の場合、パラメーター値は通常02:00に解決されます。DST が開始すると、01:00に解決されます。 -
シナリオ 2: タスクのスケジュール時刻が
02:00で、スケジューリングパラメーターが$[hh24-1/24]の場合、パラメーター値は通常01:00に解決されます。DST が開始しても、01:00に解決されます。これが日次タスクの場合、システムはその日のインスタンスを ドライラン に設定します。
DST 終了時の影響
影響 1: インスタンスの生成
時間単位のタスクの場合、DST が終了する日は 25 時間の長さになり、02:00 が 2 回含まれます。ただし、タスクは引き続き 24 個のインスタンスのみを生成し、2 回目の 02:00 のインスタンスのみを保持します。
影響 2: パラメーター置換
DST が終了する日、02:00 が 2 回発生するため、その日は 25 時間の長さになります。時間単位のタスクは引き続き 24 個のインスタンスのみを生成し、2 回目の 02:00 のインスタンスのみを保持します。タスクのスケジューリングパラメーターがインスタンスのスケジュール時刻に基づく計算を含む場合、この 25 時間の日がオフセットを引き起こす可能性があります。以下のシナリオで説明します。
-
シナリオ 1: タスクのスケジュール時刻が
03:00で、スケジューリングパラメーターが$[hh24-2/24]の場合、パラメーター値は通常01:00に解決されます。DST が終了すると、02:00に解決されます。 -
シナリオ 2: タスクのスケジュール時刻が
02:00で、スケジューリングパラメーターが$[hh24-1/24]の場合、パラメーター値は通常01:00に解決されます。DST が終了すると、02:00に解決されます。