如何从一个轮询器触发多个ftp inbound-channel-adapter连接ftp服务器?

时间:2015-04-18 12:04:21

标签: spring ftp spring-integration

首先,感谢您的关注 我在我的spring集成项目中定义了两个ftp入站通道适配器,具有不同配置的适配器但是有共享会话工厂来连接ftp服务器,每个适配器都有一个轮询器来触发,我想看到波纹管代码是否正确? 是效率吗?

<bean id="ftpClientFactory"
          class="org.springframework.integration.ftp.session.DefaultFtpSessionFactory">
        <property name="host" value="127.0.0.1"/>
        <property name="port" value="21"/>
        <property name="username" value="banks_reader"/>
        <property name="password" value="123456"/>

    </bean>
    <bean id="myFilter" class="com.ali.util.FtpFilter"/>
    <bean id="onceFilter" class="com.ali.util.OnceFilter"/>
    <int-ftp:inbound-channel-adapter id="ftpInbound1"
                                     channel="inboundFileChannel"
                                     **session-factory="ftpClientFactory"**
                                     charset="UTF-8"
                                     auto-create-local-directory="true"
                                     delete-remote-files="true"
                                     remote-directory="/directoryA"
                                     remote-file-separator="/"
                                     temporary-file-suffix=".writing"
                                     local-filter="myFilter"
                                     filter="onceFilter"
                                     local-directory="file:output">
        **<int:poller fixed-rate="5000"/>**
</int-ftp:inbound-channel-adapter>
    <int-ftp:inbound-channel-adapter id="ftpInbound2"
                                     channel="inboundFileChannel"
                                     **session-factory="ftpClientFactory"**
                                     charset="UTF-8"
                                     auto-create-local-directory="true"
                                     delete-remote-files="true"
                                     remote-directory="/directoryB"
                                     remote-file-separator="/"
                                     temporary-file-suffix=".writing"
                                     local-filter="myFilter"
                                     filter="onceFilter"
                                     local-directory="file:output">
        **<int:poller fixed-rate="5000"/>**
</int-ftp:inbound-channel-adapter>

还有其他办法吗?

1 个答案:

答案 0 :(得分:1)

这是使用通道适配器的正确技术。

或者,您可以使用outbound gateway代替,并依次从两个目录中获取(ls + getmget)文件。