我的骆驼路线如下:
<camelContext id="camel" xmlns="http://camel.apache.org/schema/spring" >
<route>
<from uri="bean:SendClass?method=send" />
<to uri="jms:MyQueue" pattern="InOnly" />
</route>
<route>
<from uri="jms:MyQueue" />
<to uri="bean:recvClass?method=recv" />
</route>
</camelContext>
send方法在第三方Pojo以不规则的间隔激活时发送消息。但是,我认为问题是驼峰重启 一旦recv bean收到消息并重新发送相同的消息(一秒钟就有数百个消息)的路由。我真的想要它 当send方法被激活并且创建了一条新消息时发送消息(即JMS队列应该有唯一消息)。我这样做吗?
可能的解决方案是:
<from.../>
内的一些属性吗?<from uri="bean:..." />
感谢 sanre6
答案 0 :(得分:2)
你不应该有第一条路线。当你这样做时,你告诉Camel不断调用该bean的send方法并进行路由。因此,为什么你每秒看到100条消息。
相反,您应该在bean代码中使用一些Camel API并将消息发送到JMS队列。例如,使用ProducerTemplate。