Events 为RxJava 2.x配置Grails事件总线调度器
我们将Grails4.x与rxjava2.x插件(Grails-event-rxjava2:4.0.0)一起使用。我们正在尝试将默认Io调度程序更改为另一个。显示了如何在默认事件总线实现中实现这一点,但我们无法在RxJava 2中更改它 grails app/conf/spring/resources.groovyEvents 为RxJava 2.x配置Grails事件总线调度器,events,grails,rx-java2,Events,Grails,Rx Java2,我们将Grails4.x与rxjava2.x插件(Grails-event-rxjava2:4.0.0)一起使用。我们正在尝试将默认Io调度程序更改为另一个。显示了如何在默认事件总线实现中实现这一点,但我们无法在RxJava 2中更改它 grails app/conf/spring/resources.groovy import org.grails.events.bus.* import java.util.concurrent.* beans = { eventBus(Execut
import org.grails.events.bus.*
import java.util.concurrent.*
beans = {
eventBus(ExecutorEventBus, Executors.newFixedThreadPool(5))
}
对于RxJava2,我们应该使用RxJavaPlugins类,但我们不知道如何配置resources.groovy
有人能帮忙吗?“提前感谢”通过文件配置Java的ServiceLoader
,使用其默认构造函数和Schedulers.io()
调度器。由于scheduler属性是final,因此我认为您可以实现所需的唯一方法是提供自己的实现:
grails-events-rxjava2
acompileOnly
依赖项,否则将同时找到RxEventBus
和YourEventBus
,从而导致错误
org.grails.events.rxjava2.RxEventBus
:
class YourEventBus extends RxEventBus {
YourEventBus() {
super(Schedulers.computation()) //or whatever
}
}
src/main/resources/META-INF/services/grails.events.bus.EventBus
文件中注册自定义实现
谢谢它也适用于默认实现,而不是grails文档中建议的解决方案