如何使用 tRunJob 强制子作业使用与父作业相同的上下文?
How to force a child job with tRunJob to use the same context as the parent job?
我在 Talend ESB (SE) 6.5.1 中有一条路线,它使用 cTalendJob
调用 Talend 作业,它有一个单选按钮选项 "Use Route Context",这很棒 - 如果我的路线是DEV 上下文,所以这是我的工作。
但是,当我尝试将此作业移动到另一个上下文(在运行时)时,我遇到了子作业的问题。我的工作调用了 tRunJob
的子作业,其中 Context 是强制参数,没有 "current" 或类似参数的选项。因此,当我使用上下文 TEST 调用我的路由时,名为 buy cTalendJob 的作业正在获取路由上下文 (TEST),但子作业仍在获取 DEV 上下文。
我能看到在子作业中强制使用正确上下文的唯一方法是
检查 Transmit whole context
选项,但这只有在我的子作业中的所有上下文选项也存在于父作业中时才有效,这很烦人且有潜在风险。
使用动态作业(即使不是)并将当前上下文指定为上下文参数本身。同样,它很丑陋,可能效率较低,也可能存在问题。
一定有更好的解决办法吧?这似乎是整个上下文的关键。
感谢观看!
很遗憾,没有,正确的方法是在父作业和子作业中加载上下文并检查 "Transmit whole context"。
如果您在 "Contexts" 中定义上下文并在两者中使用相同的上下文,则风险不大。
我在 Talend ESB (SE) 6.5.1 中有一条路线,它使用 cTalendJob
调用 Talend 作业,它有一个单选按钮选项 "Use Route Context",这很棒 - 如果我的路线是DEV 上下文,所以这是我的工作。
但是,当我尝试将此作业移动到另一个上下文(在运行时)时,我遇到了子作业的问题。我的工作调用了 tRunJob
的子作业,其中 Context 是强制参数,没有 "current" 或类似参数的选项。因此,当我使用上下文 TEST 调用我的路由时,名为 buy cTalendJob 的作业正在获取路由上下文 (TEST),但子作业仍在获取 DEV 上下文。
我能看到在子作业中强制使用正确上下文的唯一方法是
检查
Transmit whole context
选项,但这只有在我的子作业中的所有上下文选项也存在于父作业中时才有效,这很烦人且有潜在风险。使用动态作业(即使不是)并将当前上下文指定为上下文参数本身。同样,它很丑陋,可能效率较低,也可能存在问题。
一定有更好的解决办法吧?这似乎是整个上下文的关键。
感谢观看!
很遗憾,没有,正确的方法是在父作业和子作业中加载上下文并检查 "Transmit whole context"。 如果您在 "Contexts" 中定义上下文并在两者中使用相同的上下文,则风险不大。