灵活的基于时间的completitionPredicate在聚合器中

时间:2017-11-10 08:27:37

标签: apache-camel

我遇到了Aggregator2组件的问题。我使用聚合策略将传入的消息连接到带有expression属性的列表中,以指定日期字段,该字段确定应将哪些消息连接在一起。

我需要一些completitionPredicate,它将使用一些cron表达式和一些日期字段来决定何时刷新消息。

问题是当消息到达时正在检查completitionPredicate,所以如果我已经有应该刷新的聚合消息列表,它将等待下一条消息到达。

我需要的是一些completitionPredicate,它将每5秒调用一次。检查是否可以刷新消息。我怎么能在骆驼中做到这一点?

此时间将动态计算,因此我无法使用completitionTimeout。我怎么能在骆驼中做到这一点?

1 个答案:

答案 0 :(得分:1)

如你所说超时使用固定间隔,你不能轻易做到这一点。但是,您可以构建可在聚合器上配置的自定义AggregateController,然后构建自己的cron任务,使用此控制器强制完成正在进行的正在进行的组。