我在一个文件夹中有5000个文件,并且每天都有新文件保存在同一个文件中。我需要每天在所有文件中获取最新文件。
是否可以在Mule中实现这种情况。
尝试将文件组件保留在Poll组件内(使用waterMark)但不起作用。
我们有什么方法可以做到这一点。如果没有,请建议最好的方式(任何可能的链接)。
Mule Studio:5.3,RunTime 3.7.2。 提前致谢
答案 0 :(得分:0)
简短回答:并非真正开箱即用的解决方案。但还有其他方法。我不是说这是解决它的正确或唯一方法,但我之前已经用这种方式实现了类似的方案:
使用数据库表作为文件日志的正常文件入站。每次处理新文件时,组件都会检查其名称是否出现在表中。通过选择或过滤我只有在它已经存在时才继续 - 并且在处理之后我将文件名添加到表中。
这是一个非常重的"解决方案。更简单的访问是使用带有对象存储的幂等过滤器。例如,Redis服务器:https://github.com/mulesoft/redis-connector/blob/master/src/test/resources/redis-objectstore-tests-config.xml
答案 1 :(得分:0)
如果您的传入文件包含时间戳,这实际上非常简单........您可以通过设置文件来配置文件入站连接器:filename-regex-filter pattern =“myfilename _#[function:timestamp] .csv ”。我希望这有帮助
答案 2 :(得分:0)
可能您可以使用quartz调度程序(在cron表达式中提及时间),然后是一个groovy脚本,您可以在其中启动文件连接器。将文件连接器保留在另一个流程中。