我已经定义了以下驼峰路由:
RouteBuilder rb = new RouteBuilder() {
@Override
public void configure() throws Exception {
from("sftp://myhost//path/to/files/")
.to("log:loggingCategory?level=INFO")
.to("file:///tmp/");
}
};当我使用此路径启动上下文时,camel确实会连接并下载文件。我的问题是,camel会重复下载相同的文件,直到上下文关闭。FTP2组件为什么要这样做,我如何停止它?
我已经通过maven包含了camel-core和camel-ftp的2.10.4版本。
发布于 2013-03-09 16:36:26
Indempotent Consumer做到了这一点。the FTP2 component的文档将the File2 component称为“因为那里的所有选项也适用于此组件”。有一个参数"indempotent=true“可以激活LRUCache的使用:
选项,使用幂等消费者EIP模式让Camel跳过已经处理的文件。默认情况下,将使用基于内存的LRUCache,可容纳1000个条目。如果为noop=true,那么幂等函数也将被启用,以避免重复使用相同的文件。
我完整的源代码定义现在看起来如下所示:
from("sftp://myhost//path/to/files/?username=user&password=secret&idempotent=true")发布于 2013-03-09 11:44:46
来自camel ftp2文档:
FTP使用者在默认情况下会将使用的文件保留在远程
服务器上不动。如果您希望它删除文件或将它们移动到另一个位置,则必须显式配置它。例如,您可以使用delete=true删除文件,或使用move=.done将文件移动到隐藏的完成子目录中。
要删除该文件,请将路由更改为
from("sftp://myhost//path/to/files?delete=true")确保连接的用户具有所需的权限。
https://stackoverflow.com/questions/15304840
复制相似问题