我有一个文件: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"/>
事务同步适合您:
<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
。
我们使用spring integration sftp:inbound-channel-adapter从远程主机传输数据。我们希望将文件保留在远程主机上。因此,我们尝试使用delete-remote-files=false选项。 不幸的是,这些文件会被多次处理。是否有一种方法可以保存远程文件而不多次处理它们? 编辑:这是因为随后的进程会在本地端删除文件。
我使用XML配置将spring-integration通道连接到服务激活器。我已将一个sftp入站通道适配器附加到同一通道。这很管用。 我希望允许客户机通过web界面向通道添加/删除SFTP入站通道适配器,但是实例化spring-integration组件似乎与XML Spring上下文紧密耦合(请参见org.springframework.integration.SFTP.config.sftP
我正在使用入站通道适配器poling目录。但是,它一直在无限次地poling同一个文件,而不创建消息负载。
我有一个spring集成文件,使用入站适配器从本地目录读取一些文件,然后将其存储在CouchDB中。我最终会想删除它。在我的属性文件中,我使用了delete.source.files=true。然而,这似乎不起作用。我在其他stackflow问题中读到,我可以使用ExpressionEvaluatingRequestHandlerAdvice。我将它与inboundchanneladapter一起
如何使用java dsl Integrationflows从spring集成触发spring批处理作业。 我有下面的代码,它轮询目录中的文件,当新文件添加到目录中时,会生成一条消息,我想在该实例中触发一个Spring批处理作业。请建议。