Spring 集成:逐行处理文件以保持读取状态

Spring integration: process files line by line persisting read state

我想使用 Spring 集成文件逐行处理文件,这似乎可以使用 FileReadingMessageSourceFileSplitter.

但是,当 Spring 集成应用程序在处理文件时崩溃或重新启动时,我不希望行被重新处理(至少不要太多)或丢失。

有没有办法在 Spring 集成中保持文件的读取状态,以便从中断处重新开始处理?有没有人有这种情况的例子?

无法在 FileSplitter 中保持读取状态,但我建议您查看 Idempotent Receiver 模式。因此,处理文件行的端点可以跳过那些已经处理过的行。

在文档中查看更多信息:https://docs.spring.io/spring-integration/docs/5.3.0.M4/reference/html/messaging-endpoints.html#idempotent-receiver