在 Talend 中捕获 ftp 异常并重试

Catching ftp exception in Talend and retrying

我有一份 Talend 工作,我正在建立 ftp 连接并下载文件。我想添加功能,如果 ftp 主机没有响应,我可以在终止作业之前重试连接 n 次。我查看了 lLogCatcher 和 tLoop,但这似乎没有达到目的。任何关于我应该采取哪个方向的指示都将不胜感激。

要捕获异常,您可以使用包含 try 和 catch 的 tJavaFlex,然后通过处理条件,您可以使用 tLoop,我开发了这个小工作,因为我喜欢挑战,它工作得很好

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

    • trynb : int(最大尝试次数)
    • isitok : int (默认0, 后面会用到)
  2. t循环设置,使用while类型:

  1. tJava_1: 它只是为了生成不同的 ip,所以我可以执行测试,你可以根据你的情况删除它。

  2. tJavaFlex:要捕获异常,请在起始代码框中写入try{,在结束代码框中写入}catch(Exception e){System.out.println("to the next try ");}。您必须使用迭代来连接下一个组件。

  3. tFTP连接:您的 FTP 设置。

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

  5. tJava_3:只是为了保证编排,没有代码。

  6. 如果(顺序:1):((Integer)globalMap.get("tLoop_1_CURRENT_ITERATION")) < context.trynb

  7. 如果(顺序:2):((Integer)globalMap.get("tLoop_1_CURRENT_ITERATION")) >= context.trynb