本文为您介绍在进入和退出夏令时的时候,对调度任务实例生成和定时时间的影响。若您的工作空间所在地域施行夏令时,您可通过本文了解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
。