У меня есть веб-сервис для отдыха, который возвращает DeferredResults. Я реализовал JavaRx Observable из службы executer, которая возвращает Future. Я хотел, чтобы этот веб-сервис не блокировался, но, похоже, он блокирует операцию.Служба отдыха с Java, наблюдаемая из службы Executer
Считаете ли вы способ, которым я пользовался службой экстерьера, здоров?
DeferredResult result = new DeferredResult();
Observable<ResultEntity> observable = Observable
.from(executerService.submit(callable));
observable.subscribe(new Subscriber<ResultEntity>() {
@Override
public void onCompleted() {
}
@Override
public void onError(Throwable throwable) {
result.setErrorResult(throwable.getMessage());
}
@Override
public void onNext(ResultEntity r) {
result.setResult(t);
}
});
Вы видели это http://callistaenterprise.se/blogg/teknik/2014/04/22/c10k-developing-non-blocking -rest-services-with-spring-mvc/ – Optional
Спасибо. Я также использовал CompatableFuture раньше, чтобы создать неблокирующий сервис, и он сработал. Но я хотел бы узнать о RxJava и о том, как я могу создать с ним неблокирующую службу. Вот почему я задаю этот вопрос. –