我有一种情况,我需要在talend中并行运行五个不同的子作业。问题是,在我的选择查询中,我将得到五个不同的ID,然后对于每个特定的ID,我需要运行五个不同的作业。 tparrallelize组件的问题在于,它不允许我将上下文变量传递给每个子作业,即在这种特殊情况下的id。
从表限制5中选择id; ---->作为参数
的不同id的同一作业的五个不同实例任何帮助都将受到高度赞赏
感谢
答案 0 :(得分:4)
我不确定我是否正确理解你在这里做了什么,但是如果要打破每个ID并将它们存储为5个单独的上下文变量,那么每个作业都可以使用正确的ID访问自己的上下文变量为每个人存储并使用它。
因此,我将从您的数据库输入组件开始(只需选择您想要的ID)并将其提供给tFlowToIterate
。通过迭代流将其连接到tFixedFlowInput
组件,并在模式中创建2个字段,“key”和“value”。使用内联表格指定“key”应为((Integer)globalMap.get("tFlowToIterate_1_CURRENT_ITERATION"))
,“value”应为((String)globalMap.get("row1.SupplierPartNumber"))
。
然后我将它放入一个tMap
组件中,我将"ContextNumber" + row2.key
放入映射的键列中,只是为了使它比作为上下文的迭代次数更明显然后输入直接进入tContextLoad
。
从那里你可以OnSubjobOK到你的tParallelize
组件并将所有工作链接在一起。在每个作业中,将作业配置为使用适当的上下文变量。