2013-12-11 58 views
2

目前,我们的应用程序使用grails-jms插件。我们有一个我们连接到的ActiveMQ消息队列。问题是如果我们在消息已经在队列中之后启动应用程序,那么在grails完全启动之前,mdp(消息驱动的Pogo)会尝试使用消息。Grails消息驱动POGO过早消费消息

(通过完全启动,我们注意到,域对象还没有对它们动态查找器)

我们已实现的当前的解决方案是使用消息的重试,和之间设置在配置的时间量重试尝试。但是,这不能是我们的最终解决方案。

有没有人遇到过这种情况?有没有人有什么建议?

回答

0

我不知道grails,但是使用Java,我会将听众容器autoStartup属性设置为false,并在准备好时将容器设置为start()。但是,如果在gradle准备好之前上下文本身有明确的start(),那么这将不起作用。

AutoStart只控制SmartLifecycle豆是否自动启动refresh()(而不是等待start())。大多数SmartLifecycle对象具有自动启动功能。

+1

我认为有一个关于autoStartup在grails插件中没有得到尊重的bug:http://jira.grails.org/browse/GPJMS-15 –