spring - 集群中的文件夹轮询

标签 spring redis spring-integration

我在集群中的两个节点上部署了一个 spring 集成应用程序。他们使用入站文件适配器轮询单个目录上的传入文件。 我有以下配置。

<file:inbound-channel-adapter id="inboundAdapter" channel="in" directory="file:${in.folder}" queue-size="100000"
      filter="incoimngCompositeFilter">
    <int:poller id="fileInboudPoller" fixed-rate="${in.interval}" receive-timeout="${file.in.timeout}" time-unit="SECONDS"
      max-messages-per-poll="${file.in.max.messages}" task-executor="taskExecutor" />
</file:inbound-channel-adapter>

<bean id="incoimngCompositeFilter" class="org.springframework.integration.file.filters.CompositeFileListFilter">
  <constructor-arg>
    <list>
        <bean class="org.springframework.integration.file.filters.FileSystemPersistentAcceptOnceFileListFilter">
            <constructor-arg name="store" ref="redisMetaDataStore" />
            <constructor-arg name="prefix" value="test"/>
        </bean>
        <bean class="org.springframework.integration.file.filters.RegexPatternFileListFilter">
            <constructor-arg value="(?i)^(?!.*writing).*$" />
        </bean>
    </list>
  </constructor-arg></bean><bean name="redisMetaDataStore" class="org.springframework.integration.redis.metadata.RedisMetadataStore">
  <constructor-arg name="connectionFactory" ref="redisConnectionFactory" </bean><bean id="redisConnectionFactory" class="org.springframework.data.redis.connection.jedis.JedisConnectionFactory">
  <property name="port" value="6379" />
</bean>

我得到间歇性的结果。有时它处理时没有任何问题,但有时一个实例正在尝试处理其他实例已处理的文件。 有人可以向我指出使用 FileSystemPersistentAcceptOnceFileListFilter 和 RedisMetadataStore 的示例吗?

最佳答案

您如何创建文件?一旦写入,它们会自动移动吗?

如果您就地编写它们,则可能两个适配器都会看到该文件,因为时间戳已更改。

如果文件不在商店中,或者 lastModified 日期已更改,过滤器只会通过该文件。

关于spring - 集群中的文件夹轮询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30964878/

相关文章:

java - Mongo 存储库测试搜索 Jpa 存储库

spring - Tomcat 服务器不工作 "externally"

java - 在 Spring Oauth2 token 端点上设置自定义 AuthenticationDetailsS​​ource

python - 为什么 celery 任务不起作用?

java - 当我将文件上传到 Vsftpd 服务器时,文件被锁定

java - 如何验证使用 Spring SFTP 下载的文件的校验和

java - Spring Boot Starter Integration 和 Starter WS 不能很好地协同工作?

java - Spring MVC @RestController -> 无论我做什么,PUTting 结果都是 "400 Bad Request"

Redis 在 CentOS7 上不会停止或重新启动

memory - HSET 与 SET 内存使用情况?