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

Spring集成文件入站适配器扫描目录每个轮询

伍宝
2023-03-14
<int-file:inbound-channel-adapter id="hostFilesOut" channel="hostFileOutChannel"
    directory="${hostfile.dir.out}" prevent-duplicates="false"
    filename-regex="${hostfile.out.filename-regex}" >
    <int:poller id="poller" cron="${poller.cron:0,4,8,12,16,20,24,28,32,36,40,44,48,52,56 * * * * * }"
        max-messages-per-poll="1" />
</int-file:inbound-channel-adapter> 

有人能给出一个建议吗?或者有没有其他方法也能达到同样的目的。

谢谢你。

共有1个答案

颜华池
2023-03-14

FileReadingMessageSource已经有这样一个选项:

/**
 * Optional. Set this flag if you want to make sure the internal queue is
 * refreshed with the latest content of the input directory on each poll.
 * <p>
 * By default this implementation will empty its queue before looking at the
 * directory again. In cases where order is relevant it is important to
 * consider the effects of setting this flag. The internal
 * {@link java.util.concurrent.BlockingQueue} that this class is keeping
 * will more likely be out of sync with the file system if this flag is set
 * to <code>false</code>, but it will change more often (causing expensive
 * reordering) if it is set to <code>true</code>.
 *
 * @param scanEachPoll
 *            whether or not the component should re-scan (as opposed to not
 *            rescanning until the entire backlog has been delivered)
 */
public void setScanEachPoll(boolean scanEachPoll) {

然而,我感到惊讶的是,我们没有为XML配置公开这个选项,尽管这个选项从https://jira.spring.io/browse/int-583开始就有了。

这是关于这件事的医生。

 类似资料:
  • 我对Spring集成相当陌生,我正在尝试设置一个简单的用例: 轮询远程RESTendpoint,将返回的有效负载拆分为多行,并将其发送到Kafka出站适配器。我成功地做了类似的事情,使用了一个文件适配器,但我仍然坚持使用HTTP适配器。我不明白如何将轮询器与HTTP入站适配器相关联。 到目前为止,我的方法是创建一个简单的流: inboundChannelAdapter似乎不接受轮询器。在我之前使用

  • 我是否可以使用SFTP入站通道适配器递归轮询远程目录,或者我必须有多个入站通道适配器,每个子目录一个。 我的用例是,每个租户在上传目录中都有一个子目录,他们可以在其中放置csv文件,我们的应用程序应该将上传目录池化,以查看是否有租户有新文件,然后开始在本地下载。在本地,它将具有相同的文件夹结构。 远程: /upload/tenant2/*.csv

  • 问题内容: 入站和出站通道适配器之间的根本区别是什么? 任何示例都将非常有帮助。 我已经查看过Spring文档,这种“方向性”的区别对我来说还不清楚。我支持配置了outbound-channel-adapter的应用程序,但是我发现使用 出站 标签可以直观地了解行为计数器。该适配器获取一个外部文件,然后 将其 引入应用程序中, 在 该应用程序中我们解析文件并保留数据。 这类似于这个问题,但是我想更

  • 我试图将从Quickfix读取消息(读取修复消息)配置到spring集成中。我知道我可以使用入站通道适配器从外部源(如QuickFix)读取数据。您能提供如何编写事件驱动入站通道适配器的示例吗?我有以下配置不起作用

  • 我们正在使用spring integration sftp入站通道适配器,它每隔几秒钟轮询一次,并将zip文件下载到本地目录进行进一步处理。当有一个大文件,客户端仍在上载该文件,而这个入站适配器拾取了那个不完整的文件时,问题就开始了。我们使用AcceptAllFileFilter进行远程筛选,对于本地筛选,我们有自定义筛选。 有没有更好的方法来忽略或检查文件是否完全上传,然后拿起进行处理?

  • 基础知识: 使用带集成的Spring 4.1.1,引导和1.0.0的DSL。 多个入站SFTP适配器在不同的时间表上从不同的供应商获取文件。 每个集成流在文件下载后将标头附加到消息中,以标识供应商源。 使用MessagePublishingErrorHandler处理异常。 标准消息流在消息处理成功或消息未能完成时通知外部监控解决方案。使用消息头来识别哪个流失败。 在我们收到消息后,成功和错误流都