当 DolphinScheduler 的任务失败之后,如何安全地让它重新“站”起来?
面对失败的任务,我们首先要弄明白一件事:官方给的手动补救入口。
根据版本的不同,你能在流程实例页面,右键点击失败的实例,找到几种处理方式:“重跑”、“重跑失败任务”等等。
而这些操作的背后,是我们需要区分的三种核心补救逻辑。搞清楚它们的边界,是你补救的关键一步。
我们建一个流程,里面2个节点,都是Mysql数据源任务。脚本分别如下
insert into cs2 select * from cs where adddate='${system.biz.date}'insert into cs3 select * from cs2 where adddate='${system.biz.date}'
主要任务就是每天定时执行把表中的昨天的数据拷贝到另一张表。


这里有3个手动执行失败和3个定时执行失败的场景。
等到3-13号时,我们点击这三种方式看有什么区别
点击重跑后,实际同步的数据是3-12号的数据,说明重跑按照的时间是根据当前点击的时间来算的。
点击重跑失败任务和重跑一样,从失败节点继续执行。
这2个都是在当前失败的流程实例中运行。
补救只能在流程定义中执行,也就是会重新创建流程实例,原来的流程实例还是失败状态。

补救可以选择调度日期段,这样时间是按照选择的日期进行执行,如果选择3-11号,那么数据就是3-10号的数据。
点击重跑后,实际同步的数据是3-10号的数据,说明重跑按照的时间是调度时间来算的。
点击重跑失败任务和重跑一样,从失败节点继续执行。
这2个都是在当前失败的流程实例中运行。

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/70014275/viewspace-3172327/ ,如需转载,请注明出处,否则将追究法律责任。