如何使int-ftp:inbound-channel-adapter按照在远程系统上创建的顺序获取文件?
例如:
File1 - 15:31:01
File2 - 15:32:02
File3 - 15:33:03
File4 - 15:34:04
File5 - 15:35:05
假设我的应用程序停机了5分钟,在这个时候创建了5个文件,一旦我重新启动/重新部署我的应用程序,int-ftp:inbound-channel-adapter必须按顺序将文件提取到我的本地系统它们被创建(时间戳)。
请建议。
此致 拉维
答案 0 :(得分:2)
<int-ftp:inbound-channel-adapter>
有comparator
属性:
<xsd:attribute name="comparator" type="xsd:string">
<xsd:annotation>
<xsd:documentation><![CDATA[
Specify a Comparator to be used when ordering Files. If none is provided, the
order will be determined by the java.io.File implementation of Comparable.
]]></xsd:documentation>
</xsd:annotation>
</xsd:attribute>
它用于内部queue
:
public FileReadingMessageSource(Comparator<File> receptionOrderComparator) {
this.toBeReceived = new PriorityBlockingQueue<File>(
DEFAULT_INTERNAL_QUEUE_CAPACITY, receptionOrderComparator);
}
在FtpInboundFileSynchronizer
将远程文件拉到本地目录之后,轮询器开始为消息流选择它们。