如何异步调用子作业
How to invoke a child job asynchronously
我正在使用 Talend Open Studio。我想从父作业调用子作业(tRunJob),但继续执行父作业而不等待子作业执行完成。
我这里的 objective 是创建一个作业,其唯一目的是触发其他作业。因此,当我收到要执行 XYZ talend 作业的请求时,该作业应该简单地开始执行 XYZ talend 作业并 return 监听新触发器。
我该如何实施?
我找到了两种从父 Talend 作业异步触发子 Talend 作业的方法
使用迭代link
您可以使用 Iterate link 来启用并行执行。单击迭代 link 和 select 'Enable parallel execution' 并设置并行线程数。
使用Java
您可以构建子作业,然后使用普通 Java(使用 tJava 组件)从父作业执行子作业。
Process p1 = Runtime.getRuntime().exec(new String[]{ "bash", "-c", "sh path/to/child_job.sh &"});
一定要在命令末尾加上'&',否则会同步等待执行完成。
我正在使用 Talend Open Studio。我想从父作业调用子作业(tRunJob),但继续执行父作业而不等待子作业执行完成。
我这里的 objective 是创建一个作业,其唯一目的是触发其他作业。因此,当我收到要执行 XYZ talend 作业的请求时,该作业应该简单地开始执行 XYZ talend 作业并 return 监听新触发器。
我该如何实施?
我找到了两种从父 Talend 作业异步触发子 Talend 作业的方法
使用迭代link
使用Java
您可以构建子作业,然后使用普通 Java(使用 tJava 组件)从父作业执行子作业。
Process p1 = Runtime.getRuntime().exec(new String[]{ "bash", "-c", "sh path/to/child_job.sh &"});
一定要在命令末尾加上'&',否则会同步等待执行完成。