Java 如何异步调用子作业

Java 如何异步调用子作业,java,talend,Java,Talend,我正在使用Talend Open Studio。我想从父作业调用子作业(tRunJob),但在不等待子作业执行完成的情况下继续执行父作业。 我的目标是创造一个工作,其唯一目的是触发其他工作。因此,当我收到要执行的XYZ talend作业的请求时,该作业应该只启动XYZ talend作业的执行,然后返回侦听新触发器。 如何实现这一点?我找到了两种方法从父Talend作业异步触发子Talend作业 使用迭代链接 您可以使用迭代链接来启用并行执行。单击迭代链接并选择“启用并行执行”并设置并行线程数

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

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


如何实现这一点?

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

使用迭代链接

您可以使用迭代链接来启用并行执行。单击迭代链接并选择“启用并行执行”并设置并行线程数

使用Java

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

确保在命令末尾添加“&”,否则它将同步等待执行完成

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