int-ftp:按顺序获取入站通道适配器?

时间:2015-07-22 14:35:28

标签: spring spring-integration

如何使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必须按顺序将文件提取到我的本地系统它们被创建(时间戳)。

请建议。

此致 拉维

1 个答案:

答案 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将远程文件拉到本地目录之后,轮询器开始为消息流选择它们。