2017-08-02 41 views
1

我需要向几个收件人发送消息,然后在动态超时值(即每个交换机的值不同)后继续路由 - 无论一个或多个收件人是否设法返回某些内容。 我以为我可以通过组播来实现这一点,其中一个分支是一个计时器,但我似乎无法找到一种方法来告诉组播完成时,一个分支到达,忽略其他分支。它可能有点类似于aggregate的completionSize,但是对于我的情况来说,合适的EIP是多播的,所以在我认为这个丑陋的解决方案之前,我问...在骆驼组播中,有没有办法在所有收件人都返回之前退出?

+0

[Multicast](http://camel.apache.org/multicast.html)已经有了'timeout'设置,所以我错过了什么? – Morfic

+0

它不是动态的。你不能根据表达式来改变它。 – Deroude

回答

0

我想,当Aggregator接收到第一个数据时,Aggregator发送消息到下一个使用生产者模板路由。

+0

聚合器是一种解决方案,但就我的理解而言,它完全改变了流程。我想发送同样的消息给几个收件人(比如多播或者收件人列表),然后等待一个动态的(基于交换的)时间,并且只用那些可用的回答继续前进,而不去等待它们。使用聚合器,我需要将每个收件人作为单独的路线。 – Deroude

相关问题