侧边栏壁纸
博主头像
SHO酱的Blog博主等级

行动起来,活在当下

  • 累计撰写 116 篇文章
  • 累计创建 149 个标签
  • 累计收到 3 条评论

目 录CONTENT

文章目录

Kettle 有限重试机制实现

SHO酱
2024-05-09 / 0 评论 / 0 点赞 / 19 阅读 / 2790 字

废话

在使用 Kettle 进行输入同步时,偶尔会因为数据来源数据库莫名的原因导致数据同步失败;所以需要使用重试机制来实现当执行失败后进行反复任务功能。但又不能无限次重复;所以就需要通过变量累加记录失败次数,在到达上限后还是要结束同步任务。

流程说明

kettle_err_retry_0.png

  1. 设置循环变量为 0;
  2. 执行过程,当执行成功后正常结束;
  3. 当执行失败后,循环变量+1;
  4. 判断循环变量是否到达最大,到最大以失败结束,此时可以做失败的业务处理;
  5. 未到达最大重试次数,进入等待;
  6. 等待后重新进入执行过程,到第2步。

详细说明

设置循环变量为 0

这里要注意变量的适用范围和变量名称。

节点位置:Ganeral -> Set variables

kettle_err_retry_1.png

循环变量+1

这里的“循环变量+1”是适用 JavaScript 脚本进行设置的。

行1:取出变量
行2:累加并设置变量
行3:设置返回 true

节点位置:Scripting -> JavaScript

kettle_err_retry_2.png

var i=new Number(parent_job.getVariable("err_times_84"));
parent_job.setVariable("err_times_84", ++i);
true;

判断循环变量是否到达最大

图中最下方的“5”为循环最大次数。

节点位置:Conditions -> Simple evaluation

kettle_err_retry_3.png

等待

这里只等待了1秒,可以根据实际业务需要进行修改。

节点位置:Conditions -> Wait for

kettle_err_retry_4.png

参考

1、kettle知识点系列之kettle的循环模式_kettle 循环-CSDN博客

0

评论区