问题标签 [itemwriter]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
32 浏览

spring - Spring Batch - ItemStreamException:未创建输出文件

我在多线程步骤中定义了以下 FlatFileItemWriter。

ItemWriter 在大多数日子里生成文件。但有时它会引发以下错误:

错误间歇性发生。当两个或更多线程发生冲突以创建数据并将数据写入文件时,会发生错误。我可以通过将我的 FlatFileItemWriter 委托给 SynchronizedItemStreamWriter 来避免它。但是 Spring 文档却提出了不同的建议。文档建议在多线程步骤中使用 FlatFileItemWriter 不需要同步写入。

因此,我不确定如何避免这些错误,并且根据日志,前两个分区成功完成运行,这意味着文件已成功创建并将数据写入其中(如果存在)。那么,当前两个分区已经创建文件时,第三个分区如何告诉该文件未创建。

任何帮助,将不胜感激。提前致谢。

0 投票
0 回答
6 浏览

spring - 多线程步骤中的 FlatFileItemWriter 问题

我使用分区编写了一个多线程 Spring Batch 项目。我的 FlatFileItemWriter 在多线程步骤中遇到间歇性问题。在 Spring Batch 文档中声明它FlatFileItemWriter不是线程安全的。所以,我想到了使用SynchronizedItemStreamWriter,但 SynchronizedItemStreamWriter 中的文档指定在多线程步骤中使用 FlatFileItemWriter 不需要同步写入
这是文档的链接:https ://docs.spring.io/spring-batch/docs/current-SNAPSHOT/api/org/springframework/batch/item/support/SynchronizedItemStreamWriter.html

请让我知道如何继续以避免在我的多线程步骤中出现问题。
对此的任何帮助将不胜感激。谢谢!

PS:这是我上周用代码提出的相同问题的重新发布。这是我上一篇文章的 URL,说明了相同的问题,但带有代码和堆栈跟踪:Spring Batch - ItemStreamException:未创建输出文件