00:00
已经讲过了,在一个job里边,对于这个代码怎么样去配置它的checkpoint的模式和一些呃配置项,那大家大家其实还会有一个疑问,就是说那到时候啊,如果我们要重启的话。它是就是如果发生故障之后要重启的话,它是怎么重启呢?难道是说这个就是呃,一旦要是挂了之后,它就无限次重启吗。诶,这其实就涉及到另外一个配置的东西,叫做重启策略啊,这个重启策略其实也比较简单,就是说呃,大家知道这肯定也是跟环境相关了啊,这里边我们有一个方法给大家看一眼,这个env有一个方法叫做还是set啊,之前我们说过这个set状态后端对吧,时间语义,还有这个并行度,哎,这里边还有一个叫做重启策略restart strategy。这里边要传的就是一个restart strategies的一个配置啊,对吧,就是相关的一个具体的一个策略,那这里边到底可以采取什么样的策略去去做这个,呃处理呢?那我们就得看一看这里边restart strategy configuration啊,这个东西到底能有哪些啊,这里边我们来看一眼这个。
01:19
它其实就是在这个restart strategies里面,然后在这个里边,大家其实会看到。它其实能够可选的有哪几种方式呢?就上面这这几种方式啊,一个叫做呃,Failure ratear啊,这是一种。大家从字面上理解,这个叫做失败率重启,对吧?啊还有一个这个叫做呃,Fallback re result,这个就是说当前不做处理,Forba回滚嘛,对吧,就是回滚到它的上层,如果我们外面有有做这个重启,上级平台有这个策略的话啊,用用那个上级的策略,然后还有一个叫做fix delayar,就是固定时间间隔重启。
02:02
啊呃,那另外这个from configuration这个不说了啊,这个是就是自己定好的那个configuration,再去再去直接调对吧,然后还有一个叫做no no reset更简单,它就是就是没有嘛,没有重启策略对吧?啊所以这里边如果说我们这个呃,默认情况下,如果什么都不配的话,那其实是有问题的,因为这里边你你如果要是这个呃不做相关的这个配置,那默认情况下正常应该是一个就是呃,就是比较比较简单的一个按照时间间隔重启的一个过程,所以最常见的重启策略配的是什么呢?这里边看起来是有四种策略啊,我这里边直接给大家在代码里边写出来,这个这个其实就是restart。Restart strategies。诶,Stra strategies这个对吧,就是这个类啊,API common下面的,然后这里边我们调用的大家看就就这么四种方法,就是failure rate result for back,还有fixed delay啊,这是两种不同的参数传入啊,然后还有一个no result no result和fall back,这个肯定我们一般情况是,呃,一般情况不用,对吧,我们自己要配,所以一般能配的就是两种,一种叫做。
03:20
Fix delayart,那这个叫做固定时间间隔重启这样的策略啊,那这里边有两种传传参方式,其实也是差不多的啊,这里边简单来讲的话就应该是什么?就是传一个尝试重启的次数,然后再给一个时间间隔。啊,那这里边的这个呃,这个呃表达的含义就是说在固定的这个时间间隔之内,然后我要去重启,超过这个时间间隔我就不重启了,那另外就是我要去呃重启这么多次对吧?呃这里边举一个例子,我们这里边就重启三次啊可以。
04:02
给一个重启三次,然后后边呃呃,这里边两种传参,一种是给一个time,给一个time类型啊,另一种另外一种是直接给一个这个整数,大家看到了是吧。啊,这里面是给了一个time类型啊,下面还有一种是。看一下另外一种调用方式,这里是直接给一个长整形啊,这个长整形就相当于是一个毫秒了啊,就是看大家习惯用什么方式去给,比方说我在这个十秒钟之内重启三次对吧,或者我这个,呃,这个一分钟之内重启三次,这个都是可以的啊,随便给这个,呃,就是按照自己的这个默认的要求就可以,另外还有一种这个stra啊。比较常见的这个叫做菲利瑞特。Result,那这个它又是代表什么样的一个重启,大家看这只有一种传参方式,三个参数,然后第一个是一个一个int,这个int表示又是一个重启的次数,对吧?啊就是在。
05:05
这个首先它失败率嘛,大家会想到既然是有失败率,那肯定是在一段时间内也是,呃按照这个重启次数有多少限制限制住啊,那这里边首先是一个这个呃重启次数,然后第二个时间是什么呢?是失败的时间间隔啊,所以他的意思就是说我们整个在测量这个失败率,本身测量这个这个呃失败率的时候,是在多长时间内去控制这个这个操作对吧?啊然后接下来后边这个呢,是两次。做这个尝试重启的时间,时间间隔就是说第一次费之后,我接下来不是还可以再去重启吗?但是重启你不要马上去重启,对吧,有可能我现在可能是周围环境,或者说呃,哪里有些机器在重启,可能我要稍微等一等啊,所以这个时候我需要给他留下一段时间间隔。
06:00
然后总共呢,是在这个时间段内,哎,你直接重启这么多次就完事了,所以这个其实就是多加了一个时间段的限制啊,跟刚才我们的那个就是固定时间间隔重启相比的话啊,就多了这个限制而已啊,刚才这个这个时间呃,大家注意一下啊,这个呃,60秒或者说这个给一个十秒,一般这个不会太长,对吧,给一个十秒,这个是说的是时间间隔啊,就是说前一次我们这里边不是定义了三次重启吗。就是你这三次重启是第一次重启啊,重启结果又又挂了对吧,又失败了,然后它是第二次重启的时候,中间要隔一段时间。隔多久呢?隔十秒钟,然后再重启下一次你不要立刻就重启啊,所以这个是时间间隔是这个意思啊,这里边比方说我们给一个五次啊,然后后面这个类型大家也看到不能给那个长整型了,只有一种调用方式time啊,所以这里边我得给一个time啊。
07:01
然后这里大家还要注意一下,就是这个time,之前我们的time在那个窗口里面都是API window in time.time对吧?啊,现在不是现在注意啊,这是统一的这个呃,就是我们重启策略的配置,当前的太庙用common里边的。所以这里边比方说我在呃,五分钟之内啊,那这里边可以of,大家看of里边有size,有它的那个单位unit对吧,所以五分钟的话五啊,然后给一个time unit。他用这个Java下面的就可以啊。给一个分钟minutes。另外他还必须传第三个参数啊,第三个参数也是一个time对吧,两次之间间隔多长时间,那比方说我还是间隔十秒10SECOND。点sentence。哎,这样就可以了,这就是我们这个,呃,关于这个重启啊,故障恢复相关的一些配置啊,大家下来之后可以把这个看一看,试一试就知道了啊,那这一部分我就还是全全注掉吧。
08:09
因为在开发环境里边。这些东西写写进来不影响我们这个,呃,就是正常的这个代码的运行,对吧?嗯,好,那这就是这部分内容。
我来说两句