Grails - 通过调用插件类上的方法重新启动 Rabbitmq 插件消费者

标签 grails rabbitmq

我正在使用 Grails Rabbitmq Native 插件。当我启动应用程序时,我不希望 RMQ 消费者自动启动,所以在我的 Config.groovy 中我定义了:

rabbitmq.enabled == false

doWithSpring() ( https://github.com/budjb/grails-rabbitmq-native/blob/master/RabbitmqNativeGrailsPlugin.groovy#L114 ) 中的代码意味着如果此标志为假,则不执行某些接线。

在某个时候,我希望能够启动 RMQ 系统。我想调用插件类中定义的方法,例如 restartRabbitContext() ( https://github.com/budjb/grails-rabbitmq-native/blob/master/RabbitmqNativeGrailsPlugin.groovy#L231 ) 来启动 RMQ 消费者。我想我需要自己进行一些接线。

有没有办法做到这一点?能够访问插件类的方法所需的导入是什么?

最佳答案

您最好的选择是使用 GrailsPluginManager使用 getGrailsPlugin 按名称访问您的插件.从那里您应该能够以 GrailsPlugin 的身份访问插件并访问插件本身中定义的公共(public)方法。
GrailsPluginManager可以通过grailsApplication获得如:grailsApplication.pluginManager .在极少数情况下您不能使用 DI,您可以随时退回到 Holders前往GrailsPluginManager (尽管这是非常罕见的情况)。

关于Grails - 通过调用插件类上的方法重新启动 Rabbitmq 插件消费者,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28430110/

相关文章:

grails - Grails Spring Security:GSP中基于用户的if/else逻辑

grails - 在Grails中进行测试时,如何模拟忽略验证的域对象?

angular - 如何在有 Angular 项目中将GrailsApplicationCommand与Gradle包装器一起使用?

java - 在Spring CachingConnectionFactory中设置connectionTimeouts和socketTimeouts

spring-boot - 创建名称为 'rabbitListenerContainerFactory' 的 bean 时出错

rabbitmq - RabbitAdmin 中的默认队列绑定(bind)

grails - grails:生产环境所需的scss编译器

grails - 如何在Grails 4上使用批注创建OpenAPI(Swagger)文档

cmd - RabbitMQ 无法初始化 erlang 发行版

java - Spring - 普通 RabbitMQ 比普通 RabbitMQ + JMS 快很多?