【发布时间】:2015-11-04 22:20:26
【问题描述】:
Spring Batch 作业我有多个作业要按顺序执行。 我需要将job1的结果传递给job2进行处理,然后将job2的数据传递给job3。等等。并且可以使用 job1 到 job5(last job) 的结果并写入输出。
Job1 - 正在从 db 读取并将结果存储在 Hashmap 中 Job2 从文件中读取并使用 job1 hashmap 来处理结果。
所以请任何人都可以为此提出最佳解决方案。我能够使用 ExecutionContext 和 JobPromotionListener 在步骤之间传递数据,但不确定如何在多个作业之间执行相同操作
【问题讨论】:
-
批处理作业是时间驱动的,而不是事件驱动的(如您的情况所述,当 Job1 完成时,执行 Job2)。无法像客户端服务器模型那样以黑白方式通信两个批处理作业。您可能应该尝试将 Job1 结果存储在 Job2 可以访问它的某个文件或 DB 表中,并为您安排具有足够时间差的作业。
-
为什么需要这些不同的工作?一份工作有多个处理器不是更有意义吗?
-
感谢您的回复,我想我们将使用多个步骤
标签: spring spring-batch