条件和空值的 Talend tLoop 问题
Talend tLoop problem with conditions and nulls
我有一份工作需要插入一行(到 Redshift 中),然后等待另一个进程更新其中一个字段中的值。该字段是 null 开始,只要它保持 null,作业就会等待并每分钟轮询一次。当字段被更新时:如果为0,结束——上报成功;不为0则结束-报失败
我有插入、等待(使用 tLoop 和 Thread.sleep)和查询新行。
但我不知道如何构建我的最后一步。我有一个 tJavaRow,我在其中检查 return_code 是否不为 null 并设置我的循环条件以结束循环。然后 else 子句执行睡眠,然后 continue 语句。
从 tJavaRow 我有三个输出:一个是到 tJava(空,因为我必须有一个输出),然后是两个 if 条件(流),只是关闭RS 连接(如果 rc = 0)或 tDie(如果 rc != 0)。
我得到一个 NullPointerException(当然),但我怀疑我的方法有问题。
我的问题:我该如何修复 NullPointerExecption(如果这是真正的问题——可能不是)或者我如何改变我的工作来完成我想要的。我的意思是“...想要?”
工作图片:
job current structure
关闭 - 如果:(rc != null && rc == 0)
tDie - 如果:(rc != null && rc != 0)
据我了解这个问题,我希望这能奏效..
我有一份工作需要插入一行(到 Redshift 中),然后等待另一个进程更新其中一个字段中的值。该字段是 null 开始,只要它保持 null,作业就会等待并每分钟轮询一次。当字段被更新时:如果为0,结束——上报成功;不为0则结束-报失败
我有插入、等待(使用 tLoop 和 Thread.sleep)和查询新行。
但我不知道如何构建我的最后一步。我有一个 tJavaRow,我在其中检查 return_code 是否不为 null 并设置我的循环条件以结束循环。然后 else 子句执行睡眠,然后 continue 语句。
从 tJavaRow 我有三个输出:一个是到 tJava(空,因为我必须有一个输出),然后是两个 if 条件(流),只是关闭RS 连接(如果 rc = 0)或 tDie(如果 rc != 0)。
我得到一个 NullPointerException(当然),但我怀疑我的方法有问题。
我的问题:我该如何修复 NullPointerExecption(如果这是真正的问题——可能不是)或者我如何改变我的工作来完成我想要的。我的意思是“...想要?”
工作图片: job current structure
关闭 - 如果:(rc != null && rc == 0)
tDie - 如果:(rc != null && rc != 0)
据我了解这个问题,我希望这能奏效..