gpt4 book ai didi

java - 如果上次修改日期超过特定时间,我如何告诉 Camel 只复制文件?

转载 作者:行者123 更新时间:2023-11-30 09:12:18 25 4
gpt4 key购买 nike

我想知道这是否可以通过 Apache Camel 实现。我想做的是让 Camel 查看一个文件目录,并且只复制那些“最后修改”日期比特定日期更新的文件。例如,只复制在 2014 年 2 月 7 日之后修改过的文件。基本上我想在每次 Camel 运行时更新“上次运行日期”的变量,然后检查文件是否在上次运行后被修改。

我想使用文件上的实际时间戳,而不是 Camel 提供的任何内容...据我了解,Camel 中有一个已弃用的方法,用于在 Camel 查看文件时标记文件,然后这将让你知道它们是否已经被处理过。但此功能已被弃用,因此我需要一个替代方案。

Apache 建议在处理后移动或删除文件以了解它是否已被处理,但这对我来说不是一个选项。有任何想法吗?提前致谢。

已解决(2014-02-10):

import java.util.Date;

import org.apache.camel.builder.RouteBuilder;

public class TestRoute extends RouteBuilder {

static final long A_DAY = 86400000;

@Override
public void configure() throws Exception {

Date yesterday = new Date(System.currentTimeMillis() - A_DAY);

from("file://C:\\TestOutputFolder?noop=true").
filter(header("CamelFileLastModified").isGreaterThan(yesterday)).
to("file://C:\\TestInputFolder");

}

}

无需 XML 配置。感谢您在下面的回答。

最佳答案

是的,您可以实现一个过滤器,然后返回 true|false 是否要包含该文件。在该逻辑中,您可以检查文件修改并查看文件是否超过 X 天等等。

在以下位置查看 Camel 文件文档

然后寻找过滤器选项,例如,在您实现 org.apache.camel.component.file.GenericFileFilter 接口(interface)的地方。

关于java - 如果上次修改日期超过特定时间,我如何告诉 Camel 只复制文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21635210/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com