当前位置: 首页 > 知识库问答 >
问题:

Spring集成-file:inbound-channel-adapter-remove原始文件

姚航
2023-03-14

我有一个文件:inbound-channel-adapter,它轮询目录中的文件,然后通过SFTP将其发送到服务器。上传后(工作正常),原始文件需要删除;如何删除上传后的原始文件?在File:Outbound-Channel-Adapter中,我可以设置一个属性来自动删除该文件。

<file:inbound-channel-adapter 
    id="incomingFiles"      
    channel="myFiles"       
    directory="file:/tmp/kots">
    <int:poller id="poller" fixed-delay="1000"/>
</file:inbound-channel-adapter>

<int:channel id="myFiles"/>

....

<sftp:outbound-channel-adapter 
    id="sftpOutboundAdapter"
    channel="myFiles"
    charset="UTF-8"     
    remote-directory="/tmp/testing"     
    session-factory="sftpSessionFactory"/>

共有1个答案

丁勇
2023-03-14

事务同步适合您:

<file:inbound-channel-adapter 
    id="incomingFiles"      
    channel="myFiles"       
    directory="file:/tmp/kots">
    <int:poller id="poller" fixed-delay="1000">
         <int:transactional transaction-manager="transactionManager" synchronization-factory="syncFactory" />
    </int:poller>
</file:inbound-channel-adapter>


<int:transaction-synchronization-factory id="syncFactory">
    <int:after-commit expression="payload.delete()" channel="nullChannel"/>
</int:transaction-synchronization-factory>

其中TransactionManager可能是开箱即用的org.springframework.integration.transaction.pseudoTransactionManager

 类似资料: