This topic describes how daylight saving time (DST) transitions affect task instance generation and scheduled times. It also explains the DataWorks policies for handling these transitions in regions that observe DST.
How it works
DataWorks automatically handles DST switching to ensure tasks run correctly on transition days. The following examples for an hourly task in the US West region show how DataWorks handles the logic for DST transitions:
-
When DST begins:
-
Number of instances: DST begins at
02:00. Clocks spring forward one hour, shifting the time from02:00to03:00. As a result, no instance is generated at02:00, and an hourly task produces 23 instances on this day. -
Instance scheduled time: This time shift adjusts the scheduled run time for some tasks. For example, the fourth instance of an hourly task, which would normally be scheduled for
04:00, is scheduled for05:00on the day DST begins.
Note-
On the day DST begins, if a daily, weekly, or monthly task is scheduled during the skipped hour, the task will not run and the system sets its instance to dry-run.
-
On this day, subtracting 10 minutes from
03:00results in01:50.
-
-
When DST ends:
Number of instances: An hourly task generates 24 instances. Two instances are generated for the
02:00hour, but only the instance for the second02:00is retained.NoteOn this day, subtracting 10 minutes from
03:00results in02:50.
Limitations
DST transitions only affect tasks in regions that observe daylight saving time.
Impacts when DST begins
Impact 1: Instance generation
-
Scenario 1: Impact on hourly and minute-level tasks.
Consider an hourly task configured as follows. Under normal conditions, it generates one instance per hour for a total of 24 instances per day. On the day DST begins, only 23 instances are generated because the instance for
02:00is skipped.NoteDST begins at
02:00. Clocks spring forward one hour, shifting from02:00to03:00. Therefore, no instance is generated at02:00.The scheduling configuration is in hourly interval mode. The Start Time is 00:00, the End Time is 23:59, and the effective date is set to Always. This corresponds to the cron expression
00 00 00-23/1 * * ?. -
Scenario 2: Impact on daily tasks.
A daily task still generates one instance on the day DST begins, but its execution depends on the scheduled time.
-
If the scheduled time is between
02:00 and 03:00, the system delays the scheduled time by one hour and sets the instance to Empty run. -
If the scheduled time is outside the
02:00 to 03:00range, the task runs normally.
In the scheduling configuration, the scheduling cycle is set to Daily, the scheduled time is
02:00, and the effective date is set to Always. This corresponds to the cron expression00 00 02 * * ?. -
Impact 2: Parameter substitution
-
Scenario 1: If a task has a scheduled time of
03:00and a scheduling parameter of$[hh24-1/24], the parameter value would normally resolve to02:00. When DST begins, it resolves to01:00. -
Scenario 2: If a task has a scheduled time of
02:00and a scheduling parameter of$[hh24-1/24], the parameter value would normally resolve to01:00. When DST begins, it still resolves to01:00. If this is a daily task, the system sets the instance for that day to dry-run.
Impacts when DST ends
Impact 1: Instance generation
For an hourly task, the day DST ends is 25 hours long and includes two 02:00 hours. However, the task still generates only 24 instances, retaining only the instance from the second 02:00 hour.
Impact 2: Parameter substitution
On the day DST ends, the day is 25 hours long because the 02:00 hour occurs twice. An hourly task still generates only 24 instances, retaining only the instance from the second 02:00. If a task's scheduling parameters involve calculations based on the instance's scheduled time, this 25-hour day can cause offsets, as the following scenarios illustrate.
-
Scenario 1: If a task has a scheduled time of
03:00and a scheduling parameter of$[hh24-2/24], the parameter value would normally resolve to01:00. When DST ends, it resolves to02:00. -
Scenario 2: If a task has a scheduled time of
02:00and a scheduling parameter of$[hh24-1/24], the parameter value would normally resolve to01:00. When DST ends, it resolves to02:00.