2013-12-11 57 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 –