Kettle 有限重试机制实现
141
2024-05-09
废话
在使用 Kettle 进行输入同步时,偶尔会因为数据来源数据库莫名的原因导致数据同步失败;所以需要使用重试机制来实现当执行失败后进行反复任务功能。但又不能无限次重复;所以就需要通过变量累加记录失败次数,在到达上限后还是要结束同步任务。
流程说明
- 设置循环变量为 0;
- 执行过程,当执行成功后正常结束;
- 当执行失败后,循环变量+1;
- 判断循环变量是否到达最大,到最大以失败结束,此时可以做失败的业务处理;
- 未到达最大重试次数,进入等待;
- 等待后重新进入执行过程,到第2步。
详细说明
设置循环变量为 0
这里要注意变量的适用范围和变量名称。
节点位置:Ganeral
-> Set variables
循环变量+1
这里的“循环变量+1”是适用 JavaScript 脚本进行设置的。
行1:取出变量
行2:累加并设置变量
行3:设置返回 true
节点位置:Scripting
-> JavaScript
var i=new Number(parent_job.getVariable("err_times_84"));
parent_job.setVariable("err_times_84", ++i);
true;
判断循环变量是否到达最大
图中最下方的“5”为循环最大次数。
节点位置:Conditions
-> Simple evaluation
等待
这里只等待了1秒,可以根据实际业务需要进行修改。
节点位置:Conditions
-> Wait for
参考
- 0
- 0
-
分享