在Talend中捕获ftp异常并重试

时间:2015-05-21 01:45:32

标签: talend

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

1 个答案:

答案 0 :(得分:4)

要捕获Exception,你可以使用包含try和catch的tJavaFlex,然后通过玩条件你可以使用tLoop,我开发了这个小工作,因为我喜欢挑战,它的工作正常 enter image description here

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

    • trynb:int(max tries number)
    • isitok:int(默认为0,我们稍后会使用)
  2. tLoop设置,使用时输入:

  3. enter image description here

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

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

    3. tFTPConnection:您的FTP设置。

    4. tJava_2:如果tFTPConnection没问题,我们需要通过改变上下文变量来进行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