我在实现某些功能时遇到了一些问题,当我删除文件时,我注意到了一些不一致。
1)当我删除多个文件时,有时并不是所有文件都被转移到正确的目录。
<!-- Adapter for reading files in the incoming directory -->
<int-file:inbound-channel-adapter id="incomingFileAdapter"
channel="fileInputChannel"
prevent-duplicates="false"
scanner="recursiveDirectoryScanner"
filename-regex="^.*\.(?i)(avi|divx|xvid|flv|f4v|mkv|m1v|m2v|m4v|mpeg|mpg|mp4|mov|vob|wmv|asf|ts|mxf)$"
directory="${file.listener.path.incoming}">
<int:poller id="filePoller" default="true" max-messages-per-poll="5" fixed-rate="5000">
<int:transactional transaction-manager="pseudoTransactionManager" />
</int:poller>
</int-file:inbound-channel-adapter>
<!-- Adapter for writing files to the processed directory -->
<int-file:outbound-channel-adapter id="processedFileAdapter"
mode="REPLACE"
channel="fileInputChannel"
delete-source-files="true"
auto-create-directory="true"
order="1"
directory-expression="@dynamicDirectoryGenerator.generateDirectory(payload)" />
<int:service-activator
input-channel="fileInputChannel"
output-channel="nullChannel"
order="2"
ref="fileInputActivator"
method="processMessage"/>
<bean id="fileInputActivator" class="com.nfl.dm.shield.ingestion.file.activator.FileInputActivator" />
<bean id="recursiveDirectoryScanner" class="org.springframework.integration.file.RecursiveLeafOnlyDirectoryScanner" />
<bean id="dynamicDirectoryGenerator" class="com.nfl.dm.shield.ingestion.file.dynamic.DynamicDirectoryGenerator" />
<bean id="pseudoTransactionManager" class="org.springframework.integration.transaction.PseudoTransactionManager" />
a)由于没有FileInputChannel
的声明,因此它是DirectChanel
,这意味着消息将交替地转到出站适配器和服务激活器。
将其声明为
,每个文件将转到两个订阅服务器(基于顺序
)。
b)不清楚您的意思,既然您想要将文件发送到服务,为什么要在它到达之前删除它?如果您确实想要这样做,那么您可以使用ExpressionEvaluatingRequestHandlerAdvise将
添加到文件适配器。有关如何使用该建议的示例,请参见重试和更多示例。
c)不,伪事务不是必需的,因为您没有对成功或失败采取任何行动。
我是这个Spring集成和JMS的新手,我开始使用它。在这里,我想通过activemq创建普通的jms消息,并通过spring inbound适配器(消息驱动)接收它。 以下是我的spring配置文件 这是我的测试课。 } 但问题是我不能保证交货。有些时候程序不能接收消息,有些时候它成功了,但有一些警告,如 无法刷新目标“queue://MSG_QUEUE”的JMS连接,将在5000毫秒后重试,原
问题内容: Spring Integration FTP中的入站通道适配器和出站通道适配器之间有什么区别?我应该使用哪一个?何时使用? 我从文档中了解到,出站可以发送任何类型的文件(例如byte [],String,java.io.File),但入站仅限于文件类型。那仅仅是区别还是其他? 问题答案: 我建议您首先阅读理论 。 任何Inbound适配器都旨在从外部系统获取数据。Outbound-放置
问题内容: 入站和出站通道适配器之间的根本区别是什么? 任何示例都将非常有帮助。 我已经查看过Spring文档,这种“方向性”的区别对我来说还不清楚。我支持配置了outbound-channel-adapter的应用程序,但是我发现使用 出站 标签可以直观地了解行为计数器。该适配器获取一个外部文件,然后 将其 引入应用程序中, 在 该应用程序中我们解析文件并保留数据。 这类似于这个问题,但是我想更
我有一个模型对象,它是在多次转换和解析之后填充的。现在,我需要使用spring集成将模型中的消息属性发送给kafka。我可以使用messageKey方法构造键,但如何从m.getPayload()之类的模型中获取实际消息。getMessage()并将其发送给Kafka。