00:01
好,那刚刚呢,我们完成了这个第二一个案例,嗯,作业依赖案例,那接下来呢,我们继续往下进行,呃,那在下边呢,我们还有两个失败重试的案例啊,这个失败重试呢,咱们分为两个,一个叫做自动失败重试,一个叫做手动失败重试啊那这两个分别,哎,指的是什么意思呢?那接下来给大家简单解释一下啊,先首先我们先看这个自动室外重试案例。啊,咱们来看一个具体的这个场景啊,比如说我现在呢,哎,有一个这样的,诶工作流程。啊,有这样的工作流程啊,啊,那假如说我现在呢,执行到了第二一步了啊,执行到第二一步了,那执行第二步的时候呢,我第一次执行OK,他给失败了啊这个失败了,然后呢,失败了之后呢,呃,我们假定他失败的原因是什么呢?假定他失败的原因是一些,呃,暂时性的这个故障,什么叫暂时性的,比如说哎,暂时性的,呃,网络波动,或者说暂时性的这个系统资源不足而导致的一些连接超时,或者是申请资源超时的一些问题,啊那你想一想这样的一些问题啊,咱们是不是直接重新跑一次就有可能能够解决呀,对吧,因为这个问题是一些暂时性的问题。
01:18
对不对,可能就是那一刻是有问题的,我过一会儿再跑可能就OK了,对吧?所以说我们可以使用咱们所谓的自动失败重试啊,让他去解决这样的问题,也就什么叫自动失败重试呢?就是只要遇到问题啊,那我们就怎么做,我们就让他重考啊,遇到问题就重试,遇到问题就重试,这就叫自动失败重试啊,那当然自动失败重试能够解决的问题,是不是就是我们刚才提到的这样的一些由于暂时性的一些故障所导致的这个任务失败呀,对不对,那这是所谓的自动失败重试。啊,那我们接下来还有一个叫做手动失败重置,那什么叫做败手动失败重置呢?咱们继续往往下看啊,那假如说哎,导致我们刚刚这个哎任务失败的原因不是我们刚才提到的那种暂时性的故障。
02:07
而是什么呢?而是一些啊,就是通过自动失败重试不能解决的问题,比如说有什么导致的呢?由服务器宕宕机导致的。啊,对不对,或者说哎,我们自己给他配置的任务本身就有问题啊,那如果是这样的一些原因,那是不是这样的,这个任务你不管失败重试多少次,这个问题也修复不了,对吧,因为你是服务宕机了,对不对,服务器宕机了,或者说呢,是因为呃,我们自己配置的有问题,它失败多少次也不可能解决。对不对,那这种问题咱们怎么办呢?那这种问题呢,我们只能是先定位到我们这个问题,然后找到问题的原因,你看一看到底是怎么回事啊,如果是呃,服务挂了,那你把服务重新启动起来对不对?那如果说你配置有问题,那你把配置给它修改正确了等等等等,不管是因为什么原因啊,总之我们要定位问题,把这个诶问题给他解决,给他修复,对吧?那当我们修复完之后,那接下来这个任务是不是它得恢复啊,对吧?那关键是我们恢复的时候,我们期望他怎么跑。
03:08
那当我们恢复这个任务的时候,我们肯定期望他能够怎么做呀,他能够把已经完成的这个工作单元直接跳过。啊,然后呢,避免重复执行对吧,然后从哪从上次失败的位置继续往下进行对吧。能理解吧,那我们希望实现的是这样的一个效果啊,那咱们这这个所谓的手动失败重试呢,其实就是想告诉大家,我们应该如何去实现我们刚刚所说的这种效果。啊,就是任务失败了啊,我重新跑的时候,如何让他跳过已经成功的这个工作单元,然后呢,从失败的位置开始跑啊,这就是手动失败重试这个案例的主要内容,好了啊,那现在就给大家已经阐述完了咱们所谓的自动失败重试和手动失败重试的概念了啊好,我们现在先看这个自动失败重试。其实自动失败重试啊,我们要做的事很简单啊,只需要我们在哎附录文件当中找到我们需要进行自动失败重试的这个哎工作单元,然后呢,在他的这个肯F属性里边,再加上这样的两个参数就可以了。
04:14
哪两个呢?一个是retrece,一个是retre or back off,那这俩参数分别是什么含义呢?哎,Rerece后边我们要写的是重试次数,那比如这儿呢,是重试三次,那reri back off是什么呢?指的是重试的时间间隔,就是两次重试时间相隔多远,相隔多久,那那这个时间的单位呢,是毫秒啊,是毫秒好,那现在呢,我们就以文档当中的这个,哎例子呢,咱们去做一个测试。好,咱把它拿过来,我放我放在这儿吧,CTRLV啊放在这那放那之后呢,我们还是以原来的那个诶first flow文件作为我们修改的这个模板啊,还是以它作为我们修改的模板啊,啊,我们把这个这个呃文档当中的这个工作流程的配置文件给它拿过来啊,拿过来拿来之后呢,呃,咱们来看一下啊。
05:00
呃,这俩参数一个是失败次数是三,一个呢是嗯时间间隔,嗯,单位是毫秒,这个其实就是十秒对吧,十秒有点长啊,咱们给它缩短一点,给它调长,比如说调成这个五秒啊,调成五秒就行啊,那完了之后呢,我们给它保存一下啊,CTRLS啊,那完之后呢,我们看一看这个工作流程,我们啊要执行的任务是什么样的啊,这个工作流程呢,很简单,只有一个工作单元对吧,它的元素数组只有一个元素啊,那他要执行的命令是哪个呢?是这个SH。后面呢,它是不是执行了一个不存在的脚本呀,对吧,跟目录加一个not z.SH咱们有这个脚本没有,那所以这个任务是不是肯定会执行失败呀,对吧?那进来我们就来,诶以它来看一看我们这个失败重置的效果是什么样的啊好,那这个辅文件呢,我们CTRLS给它保存,然后呢,我们需要将文件呢拖到这个zip包里,然后呢,替换原来的文件,好那这时候呢,我们打开阿卡曼的工作界面,诶我们创建一个新的product,这是第三一个我们叫做third t啊third,那后边呢,也是th third啊完之后呢,我们点击create product。
06:06
好,那接下来呢,我们点击upload上传,找到我们那个zip包,找到一个zip包,找到它,然后呢,点击打开完之后呢,点击upload上传。好,那这个完事之后呢,我们就可以,呃,是不是去执行我们这个工作流程来对吧,那现在我们点击excu flow完事之后呢,这个就是我们这个比较简单的一个工作流程图,然后呢,点击。啊,然后点击continue,那这时候呢,我们就来到了这个工作流程的一个执行,哎图的,呃,一一个这个执行进度图,对吧,你会发现这个是不是现在是蓝色呀,对吧?蓝色说明什么,它正在执行,因为什么?因为它在重试对吧?啊啊,那时候我们可以刷新一下这个界面刷新啊你看它最终哎肯定是红色的,红色是不是表示失败呀,对吧?因为我们那个脚本本身就是不存在的,你重试多少次,最终肯定还是要失败的,对吧?那我现在来看一看它到底有没有重试,怎么去看呢?我们点这个job list啊点这这之后呢,你看这个时间线。
07:02
你会发现这里边儿呢,一共有四个这个小格对吧?啊,1234,前三个是灰色的,最后一个是红色的,这表明该任务啊,该任务单元一共执行了几次啊,一共执行了四次。啊,那有同学我不是配了三次吗?注意三次是失败重试的次数是三对不对,还有第一次呢,是不是加一起一共是四次啊,当然这个最终呢还是失败了啊,那这个呢,就是我们诶这个手动这个自动失败重试的这个配置方法啊,很简单,只需要加上这样的两个参数就OK了。
我来说两句