这是我之前的 question 的延续.由于原始问题已关闭
根据接受的答案,小任务 可以使用,我还尝试在面向块的步骤中实现自定义项目编写器,该步骤使用 jackson /JsonFileItemWriter ,我们可以使用它还是它对性能有任何影响?
public void write(final List<? extends Person> persons) throws Exception {
for (Person person: persons) {
objectMapper.writeValue(new File("D:/cp/dataTwo.json"), person);
}
}
问题一: “以上方法推荐吗?”问题二: “我们可以在项目处理器本身中生成文件并使用无操作项目编写器吗?”
有人可以帮忙吗?
最佳答案
如果你看一下spring批处理框架,它包含三个步骤,如mentioned here ——
这意味着它将输入和输出分离为一个单独的操作。因此,如果您打算将写入和处理混合在一起,基本上是违反目的的,并且会引入紧密耦合,从长远来看可能会影响您的性能。 (把它想象成一个 map-reduce 操作。那些需要是互斥的,明确定义的输入和输出。)
现在,关于推荐的问题,是的。如果您使用的是 spring 批处理,这是处理记录的最佳方式,将它们分块读取,然后分块写入。通常批处理用于处理孤立的任务,以便到时候可以并行执行这些东西。因此,只要您不是同时修改同一个文件,就应该采用这种方法。
关于java - Spring Batch 将处理后的记录写入文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63159661/