gpt4 book ai didi

java - 如何在 Spring Batch 的 block 进程中调用另一个步骤?

转载 作者:行者123 更新时间:2023-11-30 06:33:45 26 4
gpt4 key购买 nike

对于 Spring Batch,以下内容是否可行/可取?

我有一个 csv 文件,比如 foo.csv。我设置了一个 block 进程,将文件读入 Foo 对象,然后将它们处理成 Bar 对象。最后将这些写入文件 bars.csv。

foos.csv ----[IR]----> Foo ---- [IP]-----> Bar ------[IW]----> bars.csv

where IR stands for ItemReader, IP for ItemProcessor and IW for ItemWriter

现在我想进一步处理 Bar 对象,将它变成 Baz 对象并用它做一些其他事情,例如将其写入文件 bazs.csv 左右。

foos.csv ----[IR]----> Foo ---- [IP 1]-----> Bar ------[IW 1]----> bars.csv
                                                                      ---- [IP 2]-----> Baz ------[IW 2] ----> bazs.csv

或者,甚至更好

foos.csv ----[IR]----> Foo ---- [IP 1]-----> Bar ------[IW 1]----> bars.csv
                                                                     ----- [IW 2] ---->[Next Step]

where we repeatedly call the next step within the iteration, thereby passing the next Bar object. In this next step we could then do the conversion to Baz.

总而言之:是否可以从 block 进程中调用步骤?这是不是一个好主意?如果不能,有哪些替代方案?

最佳答案

目前你至少有2种可能的解决方案

  • chaining itemprocessors , 每个处理器也可以是一个作家
  • 使用数据库保存中间工作并将其用于 future 的步骤和/或flows

你的最后一个用例看起来用 message oriented solution 实现得更好

关于java - 如何在 Spring Batch 的 block 进程中调用另一个步骤?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7724213/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com