概要描述
通常情况,工作流和工作流之间并没有联系,但是如果需要将工作流中的 某任务 A 依赖于另一个工作流中的任务 B,这时需通过触发器实现。
注意:触发器由于功能局限,在 studio 2.0
之后的版本已经弃用该功能。
详细说明
-
触发器功能介绍
在任务 A 所在的工作流中新建触发器,在触发器中选中属于另一个工作流中的任务 B,设置触发周期,然后让任务 A 依赖此触发器, 在触发周期内任务 B 执行完成后会触发触发器,接着触发器触发任务 A, 达到任务 A 依赖任务 B 的目的。 -
触发器配置界面解释
名称:必填项,任务的名称,不能与同一工作流内其他任务重复。若任务名称过长,名称末尾部分会以 “… ”代替。
注意:名称中间不能包含空格。
描述:任务的简要描述,可以为空。
选择任务:在这里选择该触发器要依赖的任务,只能依赖其它工作流中的任务。
周期:指定一个时间段,如果被依赖任务在该时间段内有一次执行成功的记录,就触发该触发器,默认值为当天
。
1) 自定义
A. 第一个输入框中填写时间段的起始点(以当前工作流的调度时间为参照点),值可以为正数、负数或者零, 正数表示以参照点之后的某一点为起始点,负数表示以参照点之前的某一点为起始点,零表示与参照点一致; 单位有 s(秒)、m(分)、 h(时)、d(天)。
B. 第二个输入框填写时间段的跨度,值可以为正数或者零,单位有 s(秒)、m(分)、h(时)、d (天)。上图中参数的含义是,从工作流被调度前一小时到调度后一小时的时间段中,如果被依赖的任务执行成功,就触发该触发器;被依赖的任务执行失败,则触发器任务将一直处于等待状态。 若当前工作流在 2:00 AM 被调度,如果被依赖任务在 1:00 AM-3:00 AM 成功执行,那么就触发调度。
2) 当天
若被依赖的任务在当天执行成功了,该触发器就会被触发,从而触发下游任务。 注意 “当天” 不以任何工作流的触发时间为参照点,单纯指当天的 0:00AM~24:00PM。 -
参考案例
触发器任务 middledata.miniapp_visit_log 在每小时的 10分 调度, SQL任务 middledata.miniapp_visit_log_all 在每小时的 38分 调度。
触发器任务配置如下图,即被依赖的任务在 每小时的36分 – 每小时的46分 之间成功执行,才可以触发调度。
但该触发器中配置的任务在 每小时10分 才调度,所以如果不调大自定义的周期的话,SQL任务就不会被调度。