java - 我很难确定 Loop While DO 的作用范围

标签 java loops apache-camel

我试图在 apache Camel 中使用循环来处理从数据库获取的一些数据,以防内存不足。但是,处理完所有数据后,我需要将它们写入文件,所以我使用“.end()”结束循环并使用.to()到另一条路由写入文件,但这似乎是最后一步也在循环中,并且已多次写入文件。

from("seda:start")
.loopDoWhile(header("loopflag"))
.to()//handle data
.end()
.to("seda:generateFile");

from("seda:generateFile")
.to(...)

最佳答案

这应该有效!并且它在我使用 Camel 2.17.x 进行的简短测试中有效。您使用什么版本的 Camel?

尝试在循环内以及结束循环后放置日志语句,以验证循环的行为是否符合您的描述。

from("seda:start")
    .loopDoWhile(header("loopflag"))
        .log("must be logged for every loop cycle")
        .to()//handle data
    .end()
    .log("must only be logged once per input message")
    .to("seda:generateFile");

我在 from 中使用了直接端点,在 to 中使用了模拟端点,但这应该没有什么区别。

关于java - 我很难确定 Loop While DO 的作用范围,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57583598/

相关文章:

java - 在android中以编程方式解压缩具有阿拉伯名称的文件

c - 我不明白为什么这个循环会卡住

spring - 用于外部服务的 Rest-SOAP 网关(Spring + Camel)

json - 如何将具有键值的 JSON 文件转换为 apache camel header - Spring DSL

java - 在 Android 中使用 ion 库将文件(多部分/表单数据)上传到服务器失败

Java-堆栈中的大写

javascript - 反转 Tween.js 动画的效果

javascript - 动画倒计时/到特定数字

docker - 通过主动-备用部署将karaf从传统部署迁移到云

java - 计算平均值,字符串标记化练习