When daylight saving time (DST) starts or ends, instance generation and scheduled times for nodes in DST-observing regions are affected. This topic describes how DataWorks handles these transitions.
Background information
DataWorks ensures that nodes run correctly on DST transition days. The following example uses an hourly node in a DST-observing region to illustrate the handling logic:
- When DST starts (spring forward):
- Number of instances: DST starts at
02:00, when the clock moves forward one hour from02:00to03:00. Because the 2:00 AM hour is skipped, DataWorks does not generate an instance for this hour, so an hourly node produces only 23 instances on this day. - Instance scheduled time: The time shift when DST starts causes the scheduled run time of some nodes to change. For example, the scheduled time for the fourth instance of an hourly node, which would normally be
04:00, changes to05:00.
Important- For daily, weekly, or monthly nodes, if the scheduled run time falls within the skipped time window on the day DST starts, the node does not run. Instead, its instance is set to dry-run.
- On this day, subtracting 10 minutes from
03:00results in01:50.
- Number of instances: DST starts at
- When DST ends (fall back):
Number of instances: An hourly node produces 24 instances. Although the system generates two instances scheduled for02:00, it only keeps the instance for the second occurrence of02:00.Important Due to the repeated hour, subtracting 10 minutes from the second02:00results in02:50.
Limitations
Daylight saving time transitions affect only nodes in regions where DST is observed.
Impacts when DST starts
Impact 1: Instance generation
- Scenario 1: Impact on hourly and minute-based nodesFor example, if an hourly node is configured with the scheduling cycle described below, DataWorks generates one instance per hour, for a total of 24 instances on a typical day. On the day DST starts, only 23 instances are generated because the instance for
02:00is skipped.Example parameters: instance generation mode is set to Generate on the next day (T+1), scheduling type is auto triggered, scheduling time zone is America/New_York, the scheduling cycle is Hour with a start time of 00:00, an end time of 23:59, and an interval of 1 hour.Note DST starts at02:00. The clock moves forward one hour from02:00to03:00, so no instance is generated at02:00. - Scenario 2: Impact on daily nodesDataWorks still generates one instance for a daily node on the day DST starts, but whether the node runs normally depends on its scheduled time.
- If the scheduled time of the node falls within the
02:00–03:00window, the instance is set to Dry Run. - If the scheduled time is outside the
02:00–03:00window, the node runs normally.
02:00, the corresponding cron expression is00 00 02 * * ?. - If the scheduled time of the node falls within the
Impact 2: Parameter substitution
- Scenario 1: If a node is scheduled for
03:00and uses the scheduling parameter$[hh24-1/24], the parameter normally resolves to02:00. When DST starts, it resolves to01:00. - Scenario 2: If a node is scheduled for
02:00and uses the scheduling parameter$[hh24-1/24], the parameter normally resolves to01:00. When DST starts, it still resolves to01:00. If this is a daily node, the instance is set to Dry Run.
Impacts when DST ends
Impact 1: Instance generation
For an hourly node, the day DST ends is 25 hours long and includes two occurrences of the 02:00 hour. However, DataWorks generates only 24 instances for the node because it keeps only the instance for the second occurrence of 02:00.
Impact 2: Parameter substitution
If a node uses scheduling parameters calculated from the instance's scheduled time, the 25-hour day can cause values to differ from a normal day. Specific scenarios:
- Scenario 1: If a node is scheduled for
03:00and uses the scheduling parameter$[hh24-2/24], the parameter normally resolves to01:00. When DST ends, it resolves to02:00. - Scenario 2: If a node is scheduled for
02:00and uses the scheduling parameter$[hh24-1/24], the parameter normally resolves to01:00. When DST ends, it resolves to02:00.