【问题标题】:How to separate the latest file from Multiple files in Mule如何从 Mule 中的多个文件中分离最新文件
【发布时间】:2015-10-28 19:32:20
【问题描述】:

我在一个文件夹中有 5000 个文件,并且每天都有新文件加载到同一个文件中。我只需要每天在所有文件中获取最新的文件。

是否可以开箱即用地实现Mule中的场景。

尝试将文件组件保留在 Poll 组件中(以利用 waterMark)但不工作。

我们有什么办法可以做到这一点。如果不是,请建议最好的方法(任何可能的链接)。

Mule Studio:5.3,运行时 3.7.2。 提前致谢

【问题讨论】:

    标签: mule mule-studio mule-component


    【解决方案1】:

    简短回答:开箱即用的解决方案并不是非常快速的解决方案。但还有其他方法。我并不是说这是解决它的正确方法或唯一方法,但我之前已经以这种方式实现了类似的场景:

    带有数据库表作为文件日志的普通文件入站。每次处理新文件时,组件都会检查其名称是否出现在表中。通过选择或过滤,我只会在它不存在的情况下继续 - 处理后我将文件名添加到表中。

    不过,这是一个相当“繁重”的解决方案。更简单的访问是使用带有对象存储的幂等过滤器。例如 Redis 服务器:https://github.com/mulesoft/redis-connector/blob/master/src/test/resources/redis-objectstore-tests-config.xml

    【讨论】:

    • 感谢您的指挥。我的项目不涉及与此要求相关的 DB Table w.r.t。
    【解决方案2】:

    如果您的传入文件包含时间戳实际上非常简单............您可以通过设置 file:filename-regex-filter pattern="myfilename_#[function:timestamp].csv 来配置文件入站连接器”。我希望这会有所帮助

    【讨论】:

    • 谢谢。例如:如果我想处理仅在今天生成的文件(例如 10 个文件)。我如何单独指定今天的过滤模式。如果明天来,则代码需要自动更改为明天的日期。如果可能的话,请您发布脚本。
    【解决方案3】:

    也许您可以使用石英调度程序(在 cron 表达式中提及时间),然后是一个 groovy 脚本,您可以在其中启动文件连接器。将文件连接器保留在另一个流中。

    【讨论】:

      猜你喜欢
      • 2023-01-25
      • 1970-01-01
      • 2015-03-20
      • 2012-07-22
      • 2010-10-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多