首页 > 解决方案 > 在其上下文生命周期中使用 Apache Camel 仅读取 1 个文件

问题描述

在骆驼上下文生命周期中仅读取 1 个文件(每个骆驼上下文 1 个文件)文件属性的 maxMessagesPerPoll 在将其设为 1 时不起作用

我在 Route Builder 的 configure 方法中尝试过 maxMessagesPerPoll=1 ,但它不起作用。

我也尝试过使用 apache camel 主类的 setDurationMaxMessages(1) 方法,(文档说它设置了应用程序在终止之前将处理的最大消息数的持续时间)但是这种方法的问题是,上下文是没有停止。即使我尝试使用 setDurationIdle(1) 但这也没有停止上下文(它在其他场景中工作),所以没有执行操作。

CamelContext ctx = new DefaultCamelContext();

Main camel = new Main();

camel.addRouteBuilder(new MyRouteBuilder());

camel.setDurationMaxMessages(1);

camel.setDurationIdle(1);

camel.run();

预期的结果是使用 apache camel 来处理唯一的文件。

实际结果是它正在处理该文件夹中的所有文件。

标签: fileapache-camel

解决方案


Okay there may be a little bug in Apache Camel, I am checking this and have logged a ticket: https://issues.apache.org/jira/browse/CAMEL-13556


推荐阅读