Spring Batch - 我有多个作业要按顺序执行,并将第一个作业的结果传递给第二个作业

Spring Batch作业我有多个作业要按顺序执行 . 我需要将job1的结果传递给job2,在那里它将被处理,然后将job2的数据传递给job3 . 等等 . 并且可以使用job1的结果直到job5(最后一个作业)并写入输出 .

Job1 - 从db读取并将结果存储在从文件中读取的Hashmap Job2中,并使用job1 hashmap处理结果 .

所以,任何人都可以建议最好的解决方案 . 我能够使用ExecutionContext和JobPromotionListener在步骤之间传递数据,但不确定如何在多个作业之间执行相同操作

回答(2)

2 years ago

而不是为您的批处理提供5个作业,您应该有5个相同的工作步骤 . 这是执行您想要实现的目标的最佳方式 .

Spring Batch框架保持每个步骤执行的状态,以防您的一个步骤失败,您可以重新启动您的工作,只处理剩余的步骤 . 当然,有一些自定义选项可以控制步骤被视为失败或可重新启动的方式和时间 .

2 years ago

Spring批处理不提供开箱即用的支持 . 所有你需要的就是配置一些可以顺序执行的步骤 . 你也可以使用读者,处理器和编写器来划分步骤 .