rxJava 库与 Google Appengine 兼容吗?如果可以的话有什么限制吗?我发现的唯一信息是提到 grepcode 上的“部分支持”。http://grepcode.com/snapshot/repo1.maven.org/maven2/com.netflix.rxjava/rxjava-core/0.9.0
不支持什么?
您应该创建 RxJavaSchedulersHook 的子级并使用您的调度程序覆盖其方法,该调度程序使用com.google.appengine.api.ThreadManager
:
我是这样做的:
public class MyThreadSchedulersHook extends RxJavaSchedulersHook {
private final Executor executor = new ScheduledThreadPoolExecutor(10, ThreadManager.backgroundThreadFactory());
@Override
public Scheduler getComputationScheduler() {
return Schedulers.from(executor);
}
@Override
public Scheduler getIOScheduler() {
return Schedulers.from(executor);
}
@Override
public Scheduler getNewThreadScheduler() {
return Schedulers.from(executor);
}
}
那么你应该注册这个钩子。最好在 ServletContextListener 实现中执行此操作:
public class ContextListener implements ServletContextListener {
@Override
public void contextInitialized(final ServletContextEvent servletContextEvent) {
RxJavaPlugins.getInstance().registerSchedulersHook(new RxMainThreadSchedulersHook());
}
@Override
public void contextDestroyed(final ServletContextEvent servletContextEvent) {
// App Engine does not currently invoke this method.
}
}
这个对我有用。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)