00:01
好,那在做完第一个hello的案例之后呢,呃,我们又给大家讲解了一下我们那个呃工作流程配置文件的编写规则,好,那在掌握了工作流程的呃配置文件的编写规则之后呢,我们继续往下进行啊,那接下来咱们要讲的案例呢,叫做作业依赖案例。啊,其实大家应该能够感受到啊,我们之前做的第一个案例,Hello word的案例啊,他其实从严格意义上来讲,它其实算不上是一个真正的工作流程,对吧?咱们前面提到过一个所谓的工作流程呢,它应该有两个特点,一个呢,哎,就是它由多个工作人员或者多个任务单元组成,对吧?那第二个呢,每个任务单元之间是有相前后的依赖关系的,那其实咱们第一个hello word的案例是不是只有一个工作单元呀,对吧?那所以说它其实严格意义上来讲呢,它不是一个工作流程,对不对,那我们到底应该如何用阿兹卡班去调度工作流程呢?啊,也是工作流程的,哎,描述文件我们应该如何去写呢?
01:00
来我们看这个案例啊,那这个案例呢,我们有一个这样的需求,来大家可以看一下。啊,很简短很简短啊,一共就一句话啊,Job a和job杯B执行完了之后才能执行job c,那从这一段话当中呢,我们能够呃推测出来啊,该工作流程一共有三个任务单元,分别是job a job b和job c,那它们之间的依赖关系应该是什么样的呢?比如说这个是A啊,这个呢是B对不对?那这个是C,那他们之间的关系呢,应该是这样的,A和B是不是都执行完成之后才能诶执行C啊对吧?也就是说C这个任务单元呢,是依赖于A和B这两个任务单元的。好,这就是咱们这个需求的一个描述,好,那现在我们就按照这个要求呢,去编写一个工作流程的配置文件,咱们看看这个应该怎么去编写才行啊,怎么去编写好,那现在我们还是打开之前的那个文件啊,咱们就以它为基础进行一个修改就行了啊好,看看这块咱们应该如何去修改啊,在这儿呢,我也把这个语言给它调成压面,咱们做一个高亮的显示,那怎么去修改呢?
02:09
其实大家能想到的肯定就是,首先我们得先保证no下边的数组是不是得先增加两个元素啊,对吧,因为我们现在一共有三个工作单元了,三工作单元的数组的长度就应该是三对吧,那我们现在把这个给它复制一下啊,CTRLC。嗯,来来到对底层CTRLV,然后呢,这个也是推到最后CTRLV,好,那现在呢,已经拥有了三个工作单元了,对吧?但是这里边呢,我们都是相同的,我们需要去修改一下,比如说我们先改一下名字,比如说这个第一个就是job a,那第二个呢,我给它改成jobva b啊job b,第三个呢,给它改成job c。啊,这三个名字不一样了,然后呢,呃,我们把他们执行的命令呢,也简单改一下啊,这是hello word,那这个我给它改成比如说AAA,这个呢改成哎bbb,那这个呢改成CCC。好,那这个是不是咱们三个,呃,任务节点,三个任务单元我们就改好了呀,对吧,那可大家可以思考一下,那你说我们现在这个文件改完了吗。
03:11
咱们改完了吗?看似改完了啊,但其实我们这里边有还有一步非常重要的工作没有做呢,哪步啊?啊,就是关于咱们这个工作单元之间的这个依赖关系。啊,咱们现在是不是还有还没有给他进行描述啊,对吧,我们现在拿到这个工作流程配置文件之后呢,我们只是知道这个flow里边有这样的三个job吧,这三个job谁依赖于谁,谁先执行,谁后执行,咱们现在是不是根本不知道啊,对吧,我们不知道,那阿斯卡潘同样不知道,就是你把这个给他之后,他肯定不能按照我们预想的那样去执行。对,那怎么告诉阿兹卡班我们这个任务的依赖关系呢?诶,这时候我们只需要加一个属性就可以了,加哪个属性呢?来咱们看一下,我们只需要啊,加一个depends on这样的属性就可以了,Depends on是什么意思呢?就是依赖于谁对吧,依赖于谁啊,那我们这的依赖关系什么样呢?是不是C是依赖于A和B的呀,对吧?所以说我们depends on这个属性呢,加在哪就可以了,诶它在咱们这个,呃。
04:13
Job c这个位置就行了啊,注意啊,加的时候一定要注意你加的是跟谁,你加的时候跟谁对齐,一定要注意咱是跟谁对齐啊,是不是depends on是和name Type Conig对齐的呀,他们是同一个层级的啊,不要搞错了,那所以在这呢,我们,呃,比如说在这加也行,在下边加也可以啊,比如说在这加,哎,我们给它加上一个t pen depend子,然后呢,后边来一个on底depend子on啊,那后边呢,我们需要来一个冒号,然后边呢,是top c所依赖的这个任务。单,所以一赖任务单元,然后大家要注意了啊,我们一个任务单元,一个任务单元是不是可能会依赖于多个任务单元,对吧,比如我们这儿就是job c,它是不是依赖于A和B呀,对吧?所以说depends on这个属性它的值呢,是一个数组啊,是一个数组,这个呢,大家一定要注意,就是即便top c。
05:10
只依赖于我们前面的一个任务单元。那它后边的类型呢,也要是一个数组啊,就是你这个数组只有一个元素啊,但是它仍然是一个数组,也就是说我们这儿呢,后边去写这个值的时候呢,横杠是不是必须得有对吧?啊横杠比有,那我们依赖的时候怎么去指明呢?根据它的name去指明就可以了,比如说依赖于job a,那CTRLV,然后呢,回车那杠来一个job b啊,CTRLC,然后再放在这。嗯,好,那这样一来我们相当于就诶声明了,我们的job c是依赖于job a和job b的,那job a和job b不是不是不依赖于任何的工作单元,对吧,那所以他俩呢,是不是就是上来第一个执行的对吧,他俩都完了之后再去执行找我C。啊好,那这个描述关系,这个依赖关系我们就描述清楚了,保存完之后呢,我们就直接把这个文件保存吧,啊,这个还是first.flow对吧,咱们直接保存就可以了,保存完之后呢,那我们是不是也要给它放到这IP包里,那这回我可以这样,我直接把这个文件啊,我拖到这个zip包里,那这时候会提示我是呃替换还是不替换,我一定要给它替换掉,对吧,替换。
06:14
好,那现在这个在包里是不是就是咱们最新的flow文件和project文件来对吧?那OK,这时候我们打开阿兹卡班的工作界面啊,我们回到首页,然后这回我们再创建一个新的project,这个是我们第二一个对吧,咱们叫做second SE,那下边的描述SE CU SE CU second,然后呢,点击create完之后呢,上传,我们刚刚把这个最新的这个zip包打开,然后呢,上传。这时候呢,我们点击cute flow,然后大大家注意观察,你看现在咱们这个工作流程图,这个效果是不是就出来了呀,对吧,而且它所呈现的效果跟我们预期的效果是一样的,对吧?AB都完了之后再执行C啊好,那现在我们点击excute flow,那同样我们还是先测试一下就可以定时,我们后边再说点击excute,然后点击continue。
07:04
啊,那当然这个,因为我们执行的任务非常简单,就是执行一个E口语句对吧,所以说这三个任务呢,瞬间就变绿了啊,那这时候我们可以看一下这个job list啊,点job list,点开job list的时候呢,其实咱们可以观察一个地方,就是关于这个字段啊timeline时间线对吧,通过这个时间线呢,我们能够清楚的看到,诶A和B是并行执行的对吧,等他俩都完成之后,是不是才去执行的照C啊对吧。这个效果呢,还是比较直观的,比较直观的好了,那这个任务的依赖关系的描述我们就讲完了啊,这里边儿其实说白了就是一个属性啊,就是depends on这个属性,那大家唯一需要去注意的就是什么呢?就是depend on属性,它需要跟谁对齐,其次呢,Depends on属性的值是数组类型,这个是要注意的。啊,OK,好,那这一部分内容我们就完成了。
我来说两句