如何异步调用子作业

时间:2018-03-05 05:36:22

标签: java talend

我正在使用Talend Open Studio。我想从父作业调用子作业(tRunJob),但继续执行父作业而不等待子作业的执行完成。

我的目标是创造一份工作,其唯一目的是触发其他工作。因此,当我收到要执行XYZ talend作业的请求时,此作业应该只是开始执行XYZ talend作业并返回到侦听新触发器。

我该如何实现呢?

1 个答案:

答案 0 :(得分:2)

我找到了两种从父Talend作业异步触发子Talend作业的方法

使用迭代链接

Parallel execution using Iterate link 您可以使用Iterate链接启用并行执行。单击Iterate链接,然后选择'启用并行执行'并设置并行线程数。

使用Java

您可以构建子作业,然后使用普通Java(使用tJava组件)从父作业执行子作业。

Process p1 = Runtime.getRuntime().exec(new String[]{ "bash", "-c", "sh path/to/child_job.sh &"});

确保添加'&'在命令结束时,否则它将同步等待执行完成。