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

时间:2015-08-12 10:47:06

标签: spring spring-batch

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

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

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

2 个答案:

答案 0 :(得分:1)

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

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

答案 1 :(得分:0)

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

相关问题