本文為您介紹在進入和退出夏令時的時候,對調度任務實例生成和定時時間的影響。若您的工作空間所在地域施行夏令時,您可通過本文了解DataWorks對于進入和退出夏令時的相關處理策略。

背景信息

DataWorks可保障在進入和退出夏令時當天,任務能夠正確運行。以美國西部時間的小時任務為例,施行夏令時的地域,進入和退出夏令時當天處理邏輯如下:
  • 進入夏令時進入夏令時
    • 實例個數02:00為夏令時的開始時間,時鐘會撥快一小時,即將02:00撥至03:00,因此02:00不會生成實例,小時調度任務在夏令時當天會產生23個實例。
    • 實例定時時間:因夏令時開始,導致時間偏移,部分任務的定時運行時間會被提前。例如,原小時任務第四個周期的定時時間本該為04:00,進入夏令時當天,小時任務第四個實例的定時時間將變為05:00
    重要
    • 進入夏令時當天的日、周、月調度節點,如果設置的定時運行時間正好是被跳過的時間段,該任務不會運行,該實例將空跑
    • 實際當天03:00往前偏移10分鐘的結果會變為01:50
  • 退出夏令時退出夏令時
    實例個數:小時調度任務會產生24個實例(實際會生成兩個定時時間02:00的實例,但只保留第二個定時時間02:00的實例)。
    重要 當天02:00往前偏移10分鐘的結果仍然是02:50

使用限制

進入和退出夏令時,僅對施行夏令時的地域有影響。

進入夏令時的影響示例

影響一:實例生成

  • 場景一:對小時、分鐘任務的影響
    以小時周期任務為例,調度任務的調度周期配置如下圖,該場景每小時生成一個實例,正常情況下一天生成24個實例。進入夏令時的當天,只會生成23個實例,缺少02:00生成的實例。
    說明 02:00為夏令時的開始時間,時鐘會撥快一小時,即將02:00撥至03:00,因此02:00不會生成實例。
    冬夏令時切換對小時分鐘任務的影響
  • 場景二:對天任務的影響
    天調度任務,進入夏令時的當天同樣也會生成一個調度實例,但該任務是否正常執行與您任務的定時時間有關。
    • 如果調度任務的定時時間正好在02:00~03:00之間,則系統會把定時時間延遲1小時,并且將該實例運行狀態設置為空跑
    • 如果任務定時時間不在02:00~03:00之間,則任務正常執行。
    任務調度周期配置示例如下。天調度任務

影響二:參數替換

  • 場景一:若調度任務的定時時間為03:00調度參數配置為$[hh24-1/24],則參數取值正常替換為02:00,當進入夏令時的時候,該參數將替換為01:00
  • 場景二:若調度任務的定時時間為02:00,調度參數配置為$[hh24-1/24],則參數取值正常替換為01:00,當進入夏令時的時候,該參數將替換為01:00。若任務為天調度任務,該天調度實例將空跑

退出夏令時的影響示例

影響一:實例生成

以小時任務為例,退出夏令時當天,一天實際有25個小時(包含兩個02:00),小時調度任務生成的實例還是24個(只會取第二個02:00的實例)。

影響二:參數替換

退出夏令時當天,實際有25個小時(包含兩個02:00),小時調度任務生成的實例還是24個(只會取第二個02:00實例)。若任務的調度參數存在一些基于實例定時時間的計算,則可能會受到此25個小時的時間影響,存在偏差。具體場景如下:
  • 場景一:若調度任務的定時時間為03:00,調度參數配置為$[hh24-2/24] ,則參數取值正常替換為01:00,當退出夏令時的時候,該參數將替換為02:00
  • 場景二:若調度任務的定時時間為02:00,調度參數配置為$[hh24-1/24],則參數取值正常替換為01:00,當退出夏令時的時候,該參數將替換為02:00