如何使用tRunJob强制子作业使用与父作业相同的上下文?

问题描述 投票:3回答:1

我在Talend ESB(SE)6.5.1中有一个路由,它使用cTalendJob调用Talend作业,这有一个单选按钮“使用路由上下文”,这很棒 - 如果我的路由是DEV上下文,那么这就是我的工作。

但是,当我试图将这个工作转移到另一个上下文(在运行时)时,我遇到了一个孩子工作的问题。我的工作用tRunJob调用一个子工作,其中Context是一个强制参数,并且没有“current”或类似的选项。因此,当我使用上下文TEST调用我的路由时,名为buy cTalendJob的作业正在拾取路由上下文(TEST),但子作业仍然在拾取DEV上下文。

我可以看到强迫儿童工作中正确背景的唯一方法是

  • 检查Transmit whole context选项,但这只有在我的子作业中的所有上下文选项也存在于父作业中时才会起作用,这种作业很烦人并且可能存在风险。
  • 使用动态作业(即使它不是)并将当前上下文指定为上下文参数本身。再次,它是丑陋的,可能效率较低,也可能有问题。

当然必须有更好的解决方案吗?这似乎是整个背景的关键。

谢谢你的期待!

talend
1个回答
0
投票

不幸的是,正确的方法是在父作业和子作业中加载上下文并检查“传输整个上下文”。如果您在“上下文”中定义上下文并在两者中使用相同的上下文,则没有风险。

© www.soinside.com 2019 - 2024. All rights reserved.