您好,我在我的 Grails 应用程序中使用 RabbitMQ,并且正在寻找如何延迟侦听器启动的方法。它们现在在我的应用程序的整个布线完成之前启动,所以我想在启动后启动它们..关于如何做到这一点的任何建议?
我为此使用xml配置..
<rabbit:listener-container connection-factory="connectionFactory" message converter="jsonMessageConverter" acknowledge="auto">
<rabbit:listener queue-names="log.soap.in" ref="logSoapInListener" />
</rabbit:listener-container>
因此,当我的 grails 应用程序启动时,上下文已启动,但所有连接都需要一段时间。因此,在我的应用程序启动期间,已经调用了侦听器,但无法正确处理消息。
class LogSoapListenerService implements MessageListener {
LogSoapService logSoapService
JsonMapper jsonMapper
@Override
void onMessage(Message message) {
String body = new String(message.body, message.properties.contentEncoding ?: "UTF-8")
logSoapService.process(body)
}
}