0

我试图了解 Camel 如何阅读一些书籍(Camel in Actions)和一些教程,但有些东西我实际上不明白。基本上,每当用户单击网页或进行特定操作时,我都必须处理从 Web 应用程序发送到某些 Rabbit 队列的一些消息。

我将创建一个 Maven 项目并定义一个配置路由来处理这个过程。我的怀疑与该过程的执行有关。如果我理解得很好,当我使用

maven camel:run

它创建一个 CamelContext 实例并处理队列。但尚不清楚该进程是否会继续等待队列中的新消息。我是否需要创建一些东西来主动检查队列中的新消息,比如监听器或守护程序,或者可以使用 Spring 对其进行配置?

谢谢你的时间!
安德烈亚

4

2 回答 2

2

如果您的应用程序定义了一个camel-jms路由,那么它将在您的队列上创建一个侦听器,该侦听器将一直处于活动状态,直到您终止maven came:run进程

有关使用 maven 骆驼插件的更多信息,请参阅此页面:http ://camel.apache.org/camel-maven-plugin.html

于 2013-01-04T17:58:09.587 回答
2

只要上下文启动并运行,并且您已将队列定义为路由的入口点,它就应该继续侦听消息并处理它们。就像是:

<camel:camelContext xmlns="http://camel.apache.org/schema/spring" id="echoContext">

       <route id="echoJmsConsumeRoute">
           <from uri="activemq:queue:xxx.xxx.xxx.xxx.testqueue"/>
           <to uri="log:echo?level=DEBUG"/>
       </route>
</camel:camelContext>

如果你杀了 maven 进程,当然 JVM 也会终止。

于 2013-01-04T17:59:46.923 回答