【发布时间】:2021-06-29 01:09:55
【问题描述】:
我正在处理非常大的文件并使用 Spring Integration 来处理它们。我想知道使用 Spring Integration 和提供的 DSL 处理它们的最佳和最有效的方法是什么。我有一个包含大约 30K 记录的测试 CSV 文件,并且正在使用 FileSplitter 组件将每一行读入内存,然后根据分隔符再次拆分以获得我需要的列。
代码如下:sn-p。
IntegrationFlows
.from(Files.inboundAdapter(new File(inputFilePath))
.filter(getFileFilters())
.autoCreateDirectory(true) ,
c -> c.poller(Pollers.fixedRate(1000))
)
.split(Files.splitter())
.channel(c -> c.executor(Executors.newWorkStealingPool()))
.handle((p, h) -> new MyColumnSelector().getCol((String) p, 1))
.split(s -> s.applySequence(true).delimiters(","))
.channel(c -> c.executor(Executors.newWorkStealingPool()))
.get()
【问题讨论】:
-
请分享一下,我们面临的问题是什么?看起来你没有问任何问题,而且你的代码也提供了一些解决方案。你在寻求什么样的帮助?是什么让您认为您的解决方案效率不高?
-
您好 Artem,感谢您的回复。我意识到我的问题只是 IDE 和减慢了速度的日志记录开销。我用相同的文件测试了这个,没有任何日志记录,也没有我的 IDE,它的处理速度明显更快。再次感谢。
-
好。您可以将其作为您自己问题的答案,让人们知道发生了什么。因为是的,乍一看我没有发现您的配置有任何问题……
标签: spring-boot spring-integration spring-integration-dsl