Camel onCompletion无法按预期工作

时间:2017-07-28 18:30:19

标签: apache-camel

我有以下路径,我想在完成数据库插入任务后才记录。

from("file:src/data?noop=true").unmarshal(jaxb)
.bean(SetQueryParameterToMap.class)
.to("sql:{{insertData}}?dataSource=myDataSource")                                  
.onCompletion().log(" Inserted time " + new Date()).end();

但是日志信息打印多次而不是仅打印一次。我曾尝试过 onCompleteOnly ,但没有效果。这是预期的行为还是我在这里遗漏了一些东西?

1 个答案:

答案 0 :(得分:1)

OnCompletion不用于确定单个任务何时完成。由于SQL组件无论如何都在同一个线程中运行,因此它将在完成路由中的下一步之前完成。只需删除.onCompletion(和.end)。