捕获Talend中的ftp异常并重试

捕获Talend中的ftp异常并重试,talend,Talend,我有一份Talend的工作,我正在进行ftp连接并下载文件。我想添加这样的功能,如果ftphost没有响应,我可以在终止作业之前重试连接n次。我看了一下AllogCatcher和tLoop,但这似乎不起作用。任何关于我应该采取的方向的指示都将不胜感激。为了捕捉异常,您可以使用包含tJavaFlex的tJavaFlex,然后通过使用tLoop的条件,我开发了这个小作业,因为我喜欢挑战,而且它工作得很好 我们需要2个上下文变量: trynb:int(最大尝试次数) isitok:int(默认值为

我有一份Talend的工作,我正在进行ftp连接并下载文件。我想添加这样的功能,如果ftphost没有响应,我可以在终止作业之前重试连接n次。我看了一下AllogCatcher和tLoop,但这似乎不起作用。任何关于我应该采取的方向的指示都将不胜感激。

为了捕捉异常,您可以使用包含tJavaFlex的tJavaFlex,然后通过使用tLoop的条件,我开发了这个小作业,因为我喜欢挑战,而且它工作得很好

  • 我们需要2个上下文变量:

    • trynb:int(最大尝试次数)
    • isitok:int(默认值为0,我们稍后将使用它)
  • tLoop设置,在键入时使用:

  • tJava_1:这只是为了生成不同的ip,以便我可以执行测试,您可以根据您的情况删除它

  • tJavaFlex:要捕获异常,请在开始代码框中写入
    try{
    ,并在结束代码框中写入
    }catch(异常e){System.out.println(“到下一次尝试”);}
    。必须使用iterate连接下一个组件

  • tFTPConnection:您的FTP设置

  • tJava_2:如果tFTPConnection正常,我们需要通过改变上下文变量使tLoop中断循环,写这行:
    context.isitok=1

  • tJava_3:为了确保编排,它没有代码

  • If(顺序:1):
    ((整数)globalMap.get(“tLoop\u 1\u CURRENT\u ITERATION”)

  • If(顺序:2):
    ((整数)globalMap.get(“tLoop\u 1\u CURRENT\u ITERATION”)>=context.trynb


  • 这个解决方案写得很好,给了我一个如何处理这个问题的想法。非常感谢您的时间和建议。