00:00
好,那上期视频呢,我们讲完了这个失败重试案例当中的第一个就是自动失败重试啊,那自败失自动失败重试呢,他所能够去解决的一些问题呢,主要是一些由于暂时性的故障所导致的任务失败来,比如说哎,这个暂时的网络波动导致的超时啊,对吧,或者是呃,由于暂时的资源不足导致的这个超时等等等等是这样的啊,但是有一些问题呢,我们通过自动失败重试是解决不了的啊,那这样一来的话,是不是这个问题最终还是这个任务最终还是会一个还还是会失败呀,对吧?那这时候呢,就要求我们啊,去掌握这个手动啊失败重试的一个技巧啊,这个所谓的手动失败重试呢,就是呃,希望大家能实现一个什么样的效果呢,就是说当我们的一个工作流程。对吧,在经历了它的这个失败重自动失败重置之后,那比如说这个任务最终还是失败了,对吧,那我们应该哎如何去重新执行这个工作流程啊,他应该是这样的一个流程啊,当这个任务来进行自动失败重置之后,那最终还失败了,那这时候我们就得去排查他最终失败的原因,到看一看到底是由什么导致的那。
01:14
打丁我们排查完之后,把问题修复之后,那这个任务是不是最终需要恢复执行啊,对吧。对吧?那恢复的时候我们期望它能实现什么样的效果呢?哎,我们期望它能把成功的工作单元跳过,然后呢,从失败的位置继续往下进行,对吧?这是我们所期望的效果啊,哎,我们这一节呢,主要讲的就是如何实现咱们想要的这个效果啊好,那这个呃,案例当中呢,我们需要借助于一个这种呃,就是相对来说比较复杂的一个工作流程,那这个工作流程呢,一共有六个工作单元啊,那他们之间的依赖关系是这样的啊,ABCDEF啊这样的六个,好,那这个工作流程的配置文件呢,我们就不再手写了啊,我们把文档当中的这个诶配置文件拿过来啊,CTRLC,然后呢,放到我们之前的那个诶,First点文件当中来,我们看一下啊,那这个数组一共有六个元素,那每个元素代表的是工作流程当中的每个任务单元啊,那接下来咱们继续啊,咱们看他们的依赖关系什么样的啊,那是不是就是job b依赖于job a job c依赖于job b,然后呢,Job d它是依赖于job c的。
02:20
对吧,哎,依次往下类推,这个我们就不再一点点看了啊,这个我们直接给它保存,呃,保存完之后呢,把它,嗯。拨到我们那个first.zip诶文件,呃,这个压缩包里啊,拖进来,然后呢,进行替换,那这时候呢,我们再打开这个阿斯卡的工作界面,我们再重新创建一个新的product啊,我们比如说叫做for th force th啊这是我们的第四一个工作流程,呃,第四一个product啊,然后我们创建一下之后呢,我们上传刚刚的那个zip包。然后再点击upload啊好,那现在我们点击cute,好来现在看到的就是一个由六个工作单元组成的一个工作流程啊,那现在我们直接点击cute啊,然后点击continue OK啊那大家能看到咱们这个任务是不是直接就全部变绿了呀,对吧?啊没有失败,呃,这个其实因为什么?因为我们这个每一个工作单元,它其实任务都很简单,就是执行一个依口语句啊,所以说肯定都成功了,呃,然后我们现在啊,假定啊,咱们假定啊,注意这个场景是假定出来的啊,假定我们现在呢?呃,这个任务的执行结果是这样的,A和B成功了。
03:30
AB成功了,是呢,CDEF失败了,失败原因是由于什么导致呢?由于C,哎,这个任务它是有问题的,导致后边的DEF是不是也不能执行啊,对吧,也就是C是哎,出现问题的这个哎,工作单元啊,那现在我们需要怎么做呢?是不是需要查看这个哎,C任务的日志啊,对吧?看一看它到底是由什么导致的,那假定我们现在已经定位了这个问题的,那这个原因,然后呢,已经把问题修复了,那接下来我们需要重新去执行这个工作流程,对吧?
04:00
那咱们需要怎么做呢?啊,我们要实现刚才那个效果啊,也是A和B成功了,需要跳过,然后呢,从C开始继续往下执行,那咱们应该怎么做呢。啊,你要想去实现这样的效果呢,我们有两种途径,两种途径,一种途径呢,哎,我们可以假如设我们现在呢,呃,就是一种途径,可以怎么做呢?哎,比如说我们现在先来到首页啊首页,那我们需要怎么办呢?先找到我们刚刚的那个工作流程的那条失败的执行记录,你得先找到那条记录才行,那怎么找呢?在哪?在history history是不是历史的意思啊,对吧,咱们找到它那之后呢,来我们来看一下啊,那这里边儿我们刚刚所执行的那条失败的记录应该是谁呢?那应该是不是就是他呀,对吧。啊,应该是他啊,应该是他啊,但是呢,咱们这肯定是success啊,假定他是失败那个假定是失败那个好,那咱们找到它之后呢,我们呃怎么去找他那个,诶具体的那条记录呢,点谁点这个啊,点这个诶flow就可以了,点这个flow啊咱们点它点点完之后呢,你看这是不是就来到了我们刚刚执行的那个结果那啊对吧,那如果说我们这个呃是我们刚刚所说的那种场景,那应该就是C是失败的,那后边呢,都是哎失败的A和B是成功的。
05:14
啊,是这样的啊,那现在假定我们已经修复了这个问题了,我需要是不是重新跑了对吧?那怎么办呢?这时候我们只需要点击啊,右上角的这个prepare excution就可以了,啊,那这个它能够实现什么样的效果呢?它能够自动跳过成功的工作单元,从失败的位置继续往下跑。啊,那现在我们来看一下这个效果啊,Prepare execution,那你会发现啊,这里边是不是啊,咱们这当然因为我们这个任务确实本身是都成功了,对吧,你会发现啊,是不是这几个任务全部都啊做了这个呃,灰度处理啊,都变灰了对吧?啊都变灰了啊那变灰在这儿指的是什么?就会就是跳过啊,它就会把成功的跳过,当然我们这儿呢,呃,这个效果是看不出来的啊,这个全跳过了啊,那如果说是我们所说的那种,那这里边应该什么呀?就是A和B,哎是灰色的,然后呢,剩下的呢,哎是需要重新去执行的,一旦我们执行这个cut的,那它就会相当于它会怎么样,它相当于会接着我们上次失败的那个记录继续往下进行的。
06:16
啊,这是我们手动吃的室外重试的第一种方案啊,这种方案,那当然我们这还有没有其他方案呢?也有,你也可以这样去做啊,比如说我们来到首页,首页,然后找到我们那个工作流程所在的product,就是第四一个对吧,咱们点它点完之后呢,我们仍然是点击excute flow,那这时候我们如果直接点击ex cut,那它相当于怎么做呀,实际上又从头开始执行了,对吧?这不是我们期望的,我们希望它应该能够跳过才行,对吧?跳过成功的怎么跳过呢?哎,你可以这样,我们这是不是因为呃,假定的是A和B成功了,对吧,那你可以怎么做呢?你可以把A来进行DC吧,那右键,然后这是不是有1DC吧,咱们点击那它就变灰了,那它就跳过了,那同理,B呢也DC吧,那它也就跳过了,那这时候我们再执行呢,它就是从C开始执行了。
07:04
啊,我们可以看一下这个效果对。你看是不是A和B,它就跳过了,直接从CD,哎,从C开始跑的呀,对吧,这也能实现我们刚刚所说的那个室外重试的这个效果。啊好,那这个呢,就是我们所提到的这个手动失败重试的案例啊,那手动失败重试案例呢,就是要求大家能够呃去实现这样的一个效果,什么效果呢?就是当啊我们这个任务啊失败了之后,我们要想恢复的时候,咱们得知道如何跳过已经成功的工作单元,从失败的位置继续往下进行。啊,这是要求大家去掌握的,好了。
我来说两句