我目前正在设计Spring Integration中的集成流程,我在其中使用 FileSplitter 处理程序拆分文件并将结果发送到另一个服务。我目前正在使用 FileSystemPersistentAcceptOnceFileListFilter 处理“重复”文件,但是我还要添加在使用FileSplitter读取文件后重命名文件的功能,最简单的实现方法是什么此?
答案 0 :(得分:3)
FileSplitter
有markers
选项。这样,它会生成START
和END
条消息。因此,当您获得END
时,您可以执行所需的重命名逻辑:
设置为true以在文件数据之前和之后发出文件标记消息的开始/结束。标记是具有FileSplitter.FileMarker有效负载的消息(在标记属性中具有START和END值)。在顺序处理下游流中的某些行被过滤的文件时,可能会使用标记。它们使下游处理能够知道文件何时被完全处理。此外,包含START或END的头文件_marker被添加到这些消息中。 END标记包括行计数。如果文件为空,则仅发出START和END标记,并将0作为lineCount。默认值:false。如果为true,则默认情况下apply-sequence为false。另见markers-json。
有一个类似功能的sample application。