【发布时间】:2015-11-13 14:33:35
【问题描述】:
当入站通道适配器从输入目录读取第二个文件时,我遇到了问题。适配器启动如下流程:适配器 -> 通道 -> 拆分器 -> 通道... -> 数据库。
Splitter 每行读取文件进程,然后将文件复制到另一个目录并删除原始文件。
问题是,适配器对第一个文件按预期工作,但是当它读取第二个文件时,它再次从第一个文件发送消息(第一个文件不再位于输入目录中)。
注意:第一个通道与 ActiveMQ 队列保持一致。本地确认。
配置:
<int-file:inbound-channel-adapter id="filesIn" channel="reinjectionChannel" filename-regex="reinyeccion[0-9]{8}.txt"
directory="${input.directory.reinyeccion}" prevent-duplicates="true" />
<jms:channel id="reinjectionChannel" queue="reinjectionChannelQueue">
<jms:interceptors>
<int:wire-tap channel="reinjectionLoggingChannel"/>
</jms:interceptors>
</jms:channel>
<int:splitter input-channel="reinjectionChannel" method="split"
output-channel="inputChannel" ref="reinjectionSplitterBean" />
<int:channel id="inputChannel" >
<int:interceptors>
<int:wire-tap channel="inputLoggingChannel"/>
</int:interceptors>
</int:channel>
日志:
org.springframework.integration.handler.LoggingHandler handleMessageInternal INFO (BBR) reinjectionLoggingChannel \tmp\concentrador\files\input\reinyeccion20151109.txt
org.springframework.integration.handler.LoggingHandler handleMessageInternal INFO (BBR) reinjectionLoggingChannel \tmp\concentrador\files\input\reinyeccion20151108.txt
感谢您的帮助。
【问题讨论】: