我们在作业开发会遇到各种作业的执行逻辑,包括串行、并行、并行结束后再开始串行等;
本文章介绍job作业中如何并行执行完子job/转换后,才开始下一步作业的执行。
方法1:
示例job如下:
其中通过wait for sql 实现了对并行流程的等待,建立了一张表用来判断。
delete record:在每次作业执行前把表清空。
insert first record:本支线的任务执行完,插入一条记录到表中。
insert second record:本支线的任务执行完,插入一条记录到表中。
wait for sql :等待两个并行支线都完成任务,对表进行判断,只有满足两条记录才会执行下一步。
maximum timeout:设置的等待时间,如果在此时间内不满足条件就会认为failed。
success on timeout:选中此项后,当超过maximum timeout时间后,也不会判failed,会判success。0表示不限时间。
注意事项:
为了避免并行的作业/转换任何一个失败,任务就卡住的情况,在两个并行的作业中加入了Abort,任何一个支线失败,整个任务就失败了。
方法2(简单,推荐)
将示例中的job和job2两个并行的作业都嵌套到一个子作业即可实现两个作业并行,且job job2子作业都执行完再进行下一步的操作。