首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何手动启动Spring JMS监听器容器

如何手动启动Spring JMS监听器容器
EN

Stack Overflow用户
提问于 2015-03-24 06:39:30
回答 1查看 1.2K关注 0票数 2

我有一个服务器端应用程序,它使用来自JMS队列的消息。我像这样使用Spring listener容器:

代码语言:javascript
复制
<jms:listener-container connection-factory="myConnectionFactory"
                        ..........
                        concurrency="4-8">
    <jms:listener id="myListener" destination="my.ems.queue" ref="listenerBean" method="method"/>
</jms:listener-container>

这可以很好地工作。

这样做的一个问题是,一旦JMS消息被设置,侦听器就开始使用它。但是,listenerBean所依赖的一些bean需要一些时间来初始化(它需要从数据库填充一些数据)。

因此,如果服务启动时队列中有一些挂起的JMS消息,它将尝试在数据填充完成之前为其提供服务。这会导致一些错误。

我的问题是,如何在数据完全填充的稍后阶段才能自动启动侦听器,以便调用start()方法手动启动侦听器?

EN

回答 1

Stack Overflow用户

发布于 2015-03-24 14:21:24

您可以在DMLC上设置autoStartup属性,使其在选择调用start()之前无法启动。

另一种方法是确保在其他依赖bean准备就绪之前不创建连接工厂。

代码语言:javascript
复制
<bean class="..." name="myConnectionFactory" depends-on="importantOtherBean"/>
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29221774

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档