使用单个入站适配器的多个目录的 NFS 入站适配器配置
NFS inbound adapter configuration for multiple directory using single inbound adapter
在 spring 集成中,我想轮询来自不同源目录的文件(配置的每个接口都有不同的源目录),这些文件在 yml 文件中(动态地)配置为 sourcePath ,如下所示。用户可以添加N个接口。
interfaces:
-
sourceType: NFS
sourcePath: /Interface-1/Inbound/text
target: Interface-1
targetType: S3
targetPath: test-bucket-1
-
sourceType: NFS
sourcePath: /Interface-2/Inbound/text
target: Interface-2
targetType: S3
targetPath: test-bucket-2
是否可以使用单个入站适配器(使用原子引用)轮询来自不同源文件夹的文件或需要多个入站适配器?
当前应用程序从基目录轮询文件。
<file:inbound-channel-adapter id="filesInboundChannel"
directory="file:${base.path}" auto-startup="false" scanner="scanner" auto-create-directory="true">
<integration:poller id="poller" max-messages-per-poll="${max.messages.per.poll}" fixed-rate="${message.read.frequency}" task-executor="pollingExecutor">
<integration:transactional transaction-manager="transactionManager" />
</integration:poller>
</file:inbound-channel-adapter>
有人可以就此提出建议还是有其他方法也可以达到同样的目标
是的,您可以使用单个 <file:inbound-channel-adapter>
完成此任务。要使其 旋转 扫描目录列表,您需要为该适配器的 <poller>
配置一个 AbstractMessageSourceAdvice
实现,以便在 [=13] 时更改目录=] 为接收操作获取 false
。因此,这样下一次轮询将获得一个新的扫描目录。
作为示例,您可以查看最近推出的 RotatingServerAdvice
:https://github.com/spring-projects/spring-integration/blob/master/spring-integration-file/src/main/java/org/springframework/integration/file/remote/aop/RotatingServerAdvice.java
在 spring 集成中,我想轮询来自不同源目录的文件(配置的每个接口都有不同的源目录),这些文件在 yml 文件中(动态地)配置为 sourcePath ,如下所示。用户可以添加N个接口。
interfaces:
-
sourceType: NFS
sourcePath: /Interface-1/Inbound/text
target: Interface-1
targetType: S3
targetPath: test-bucket-1
-
sourceType: NFS
sourcePath: /Interface-2/Inbound/text
target: Interface-2
targetType: S3
targetPath: test-bucket-2
是否可以使用单个入站适配器(使用原子引用)轮询来自不同源文件夹的文件或需要多个入站适配器?
当前应用程序从基目录轮询文件。
<file:inbound-channel-adapter id="filesInboundChannel"
directory="file:${base.path}" auto-startup="false" scanner="scanner" auto-create-directory="true">
<integration:poller id="poller" max-messages-per-poll="${max.messages.per.poll}" fixed-rate="${message.read.frequency}" task-executor="pollingExecutor">
<integration:transactional transaction-manager="transactionManager" />
</integration:poller>
</file:inbound-channel-adapter>
有人可以就此提出建议还是有其他方法也可以达到同样的目标
是的,您可以使用单个 <file:inbound-channel-adapter>
完成此任务。要使其 旋转 扫描目录列表,您需要为该适配器的 <poller>
配置一个 AbstractMessageSourceAdvice
实现,以便在 [=13] 时更改目录=] 为接收操作获取 false
。因此,这样下一次轮询将获得一个新的扫描目录。
作为示例,您可以查看最近推出的 RotatingServerAdvice
:https://github.com/spring-projects/spring-integration/blob/master/spring-integration-file/src/main/java/org/springframework/integration/file/remote/aop/RotatingServerAdvice.java