轮询文件的路由有一个拦截器,如下所示。我们想知道处理的总时间。所以我们在标题中记录了startTime。 我们观察到startTime永远不会改变。此代码位于RouteBuilder :: configure方法中。然后我将代码移动到bean并从拦截器调用bean。想要更清晰,阅读拦截器上的骆驼文件,我仍然不清楚,为什么这不起作用
interceptFrom()
.setHeader("fileName",
regexReplaceAll(simple("${file:onlyname.noext.single}"),
"[^a-zA-z\\d]", ""))
.setHeader("startTime", constant(System.currentTimeMillis()))
答案 0 :(得分:2)
因为这个标题是constant
,当路由是"构建"它在运行时永远不会改变。因此,对于处理的每条消息,它都保持相同的常量值。
请参阅Camel docs for constant。您无法使用它设置动态值。
但是@ claus-ibsen添加了一条评论,即已经有一个带有交换创建时间戳的消息头。你可以使用它。
simple("${in.header.CamelCreatedTimestamp}")