在 Talend 中捕获 ftp 异常并重试
Catching ftp exception in Talend and retrying
我有一份 Talend 工作,我正在建立 ftp 连接并下载文件。我想添加功能,如果 ftp 主机没有响应,我可以在终止作业之前重试连接 n 次。我查看了 lLogCatcher 和 tLoop,但这似乎没有达到目的。任何关于我应该采取哪个方向的指示都将不胜感激。
要捕获异常,您可以使用包含 try 和 catch 的 tJavaFlex,然后通过处理条件,您可以使用 tLoop,我开发了这个小工作,因为我喜欢挑战,它工作得很好
我们需要 2 个上下文变量:
- trynb : int(最大尝试次数)
- isitok : int (默认0, 后面会用到)
t循环设置,使用while类型:
tJava_1: 它只是为了生成不同的 ip,所以我可以执行测试,你可以根据你的情况删除它。
tJavaFlex:要捕获异常,请在起始代码框中写入try{
,在结束代码框中写入}catch(Exception e){System.out.println("to the next try ");}
。您必须使用迭代来连接下一个组件。
tFTP连接:您的 FTP 设置。
tJava_2:如果tFTP连接正常,我们需要通过改变上下文变量使tLoop中断循环,写下这一行:
context.isitok=1;
tJava_3:只是为了保证编排,没有代码。
如果(顺序:1):((Integer)globalMap.get("tLoop_1_CURRENT_ITERATION")) < context.trynb
如果(顺序:2):((Integer)globalMap.get("tLoop_1_CURRENT_ITERATION")) >= context.trynb
我有一份 Talend 工作,我正在建立 ftp 连接并下载文件。我想添加功能,如果 ftp 主机没有响应,我可以在终止作业之前重试连接 n 次。我查看了 lLogCatcher 和 tLoop,但这似乎没有达到目的。任何关于我应该采取哪个方向的指示都将不胜感激。
要捕获异常,您可以使用包含 try 和 catch 的 tJavaFlex,然后通过处理条件,您可以使用 tLoop,我开发了这个小工作,因为我喜欢挑战,它工作得很好
我们需要 2 个上下文变量:
- trynb : int(最大尝试次数)
- isitok : int (默认0, 后面会用到)
t循环设置,使用while类型:
tJava_1: 它只是为了生成不同的 ip,所以我可以执行测试,你可以根据你的情况删除它。
tJavaFlex:要捕获异常,请在起始代码框中写入
try{
,在结束代码框中写入}catch(Exception e){System.out.println("to the next try ");}
。您必须使用迭代来连接下一个组件。tFTP连接:您的 FTP 设置。
tJava_2:如果tFTP连接正常,我们需要通过改变上下文变量使tLoop中断循环,写下这一行:
context.isitok=1;
tJava_3:只是为了保证编排,没有代码。
如果(顺序:1):
((Integer)globalMap.get("tLoop_1_CURRENT_ITERATION")) < context.trynb
如果(顺序:2):
((Integer)globalMap.get("tLoop_1_CURRENT_ITERATION")) >= context.trynb