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

1. 通过修改表名,模拟任务失败场景

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

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

四、总结
没有调度时间的,重跑和重跑失败任务都是按照当前点击的时间运行点击的实例
有调度时间的,重跑和重跑失败任务都是按照调度的时间运行点击的实例。
补救是选择调度时间重新创建实例运行。
END

用户案例

迁移实战

最新发版消息

加入社区
关注社区的方式有很多:
同样地,参与Apache DolphinScheduler 有非常多的参与贡献的方式,主要分为代码方式和非代码方式两种。
非代码方式包括:
完善文档、翻译文档;翻译技术性、实践性文章;投稿实践性、原理性文章;成为布道师;社区管理、答疑;会议分享;测试反馈;用户反馈等。
代码方式包括:
查找Bug;编写修复代码;开发新功能;提交代码贡献;参与代码审查等。

你的好友小海豚拍了拍你
并请你帮她点一下“分享”
