当您希望节点发布到生产环境后能够按照配置立即生成调度实例自动执行时,可以将节点的实例生成方式配置为发布后即时生成。
背景信息
节点发布后,可在运维中心查看任务最新配置。DataWorks每晚会根据周期任务的节点配置,生成第二天周期性自动调度的周期实例。而节点新建和更新操作发布至生产环境当天,自动调度的周期实例何时生效,或依赖关系何时更新,与您选择的实例生成方式有关。
在DataWorks,您可以通过实例生成方式的两个选项:T+1次日生成、发布后即时生成,来控制是否立即生效。
T+1次日生成:节点新建和更新操作在第二天的周期实例上生效。如果节点发布到生产环境后,需要立即执行任务,可以针对该任务执行补数据操作。
发布后即时生成:节点新建和更新操作将及时生效,但发布节点的时间点与真正生成可运行实例之间存在时间差,这将对不同的任务运行场景产生不同影响,详情可参见常见即时生成实例场景说明。
注意事项
工作流的内的节点不支持单独配置发布后即时生成,仅支持在工作流编辑页面的调度配置中对整个工作流配置发布后即时生成。
无论在调度配置中选择T+1次日生成实例,还是发布后即时生成实例,每天23:30至24:00为全量生成次日周期调度实例的时间。在该时间段发布的任务均需等待至第三天才能生成相应实例。
上游任务实例生成方式不一致,可能导致孤立节点产生。
即时生成实例存在时间差:为避免实例变更导致任务运行异常,发布后即时生成实例存在10分钟的时间差,即定时调度时间需晚于发布时间点至少10分钟,任务才会按最新配置运行。
即时生成实例的作用范围:并非所有变更都会立即生效。例如修改了节点关联的数据源实例,然后配置即时生成实例发布,这不会影响当天已有实例,当天周期实例仍会采用变更前的数据源实例执行。
说明您可以对最新配置的周期任务执行补数据操作,补数据将根据任务最新配置执行。
即时生成实例说明
发布后即时生成实例仅适用于未来时间段的定时调度。具体来说,只有在任务的调度时间晚于发布时间点时,实例才会正常执行
新建任务当天会生成周期实例,但只有定时调度时间在未来时间段的实例才会正常执行;
更新节点调度时间,定时调度时间在过去,则不会生成实例;如果定时调度时间在未来时间段,将按照新配置生成新实例,替换更新前实例。
说明定时调度时间必须在节点发布时间点的10分钟以后的未来时间,才可正常即时生成实例。
实例定时时间在正常执行的区间
场景一:新建节点当天生成真实运行的周期实例,配置调度时,实例定时调度时间是节点发布生成实例时间的未来时间,两个时间点之间的差值大于10分钟,则会正常调度实例,详情可参见:新建节点发布后选择即时生成实例。
场景二:更新节点配置后,且实例定时调度时间是节点发布生成实例时间的未来时间,且两个时间点之间的差值应大于10分钟,则会正常调度实例,调度的实例为更新后的实例。详情请参见:更新已发布任务的调度周期。
场景四:变更任务定时时间,对下游依赖关系的影响。
变更后的实例调度时间点是节点发布生成实例的预定未来时间,且两个时间点之间的差值大于10分钟,则会正常调度实例,下游未运行的实例,将依赖变更后的新实例。详情可参见:变更任务调度时间,对下游依赖关系的影响。
变更后的实例调度时间点是节点发布生成实例的预定过去时间,则会生成空跑实例,下游未运行实例,将成为孤立节点,详情可参见:上下游任务实例生成方式不一致。
不建议在修改生产节点调度配置时使用该功能。该功能可能存在依赖关系变更、依赖关系错乱、实例替换、实例被删除等现象,导致当天依赖关系变得复杂,但第二天任务依赖关系会恢复正常。
实例定时时间在空跑的区间
定时调度时间在节点发布时间的过去时间,仍会生成自动调度的周期实例,但实例会空跑,实例状态为实时生成的过期实例,不会生成真实运行代码逻辑,详情可参见:新建节点发布后选择即时生成实例。
场景一:实例定时调度时间是节点发布生成实例的预定未来时间,两个时间点之间的差值应小于10分钟。该实例状态为实时生成的过期实例。
例如:A节点的定时调度时间为
09:05
,而节点的发布时间为09:00
。若实例的调度时间点位于节点发布生成实例时间点的未来时刻,并且两者之间的时间差小于10分钟,则A节点将生成实时生成的过期实例的空跑实例。场景二:实例定时调度时间点是节点发布生成实例时间的过去时间点,立即生成实时生成的过期实例。
例如:A节点的调度时间配置为
09:00
,发布时间为10:00
,实例生成时间点在发布时间点之前。则A节点立即生成实时生成的过期实例的空跑实例。
常见即时生成实例场景说明
使用发布后即时生成方式生成实例时,相关功能场景的实例运行及上下游依赖情况如下: