[英]Rest Service with Java Observable from Executer Service
I have a rest web service which returns DeferredResults. 我有一个休息的Web服务,它返回DeferredResults。 I implemented JavaRx Observable from executer service that returns Future.
我从返回Future的执行程序服务中实现了JavaRx Observable。 I wanted this web service to be non blocking but it seems it is blocking the operation.
我希望此Web服务不受阻碍,但似乎正在阻止该操作。
Do you think the way I used executer service is healthy? 您认为我使用执行程序服务的方式是否健康?
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);
}
});
If you have a Callable
, you can use fromCallable
: 如果您有
Callable
,则可以使用fromCallable
:
Observable.fromCallable(callable)
.subscribeOn(Schedulers.from(executorService))
.subscribe(...)
Observable.from(Future)
is blocking operation, as mentioned in documentation. 如文档中所述,
Observable.from(Future)
正在阻止操作。 You should use Observable.from(Future,Scheduler)
instead. 您应该改用
Observable.from(Future,Scheduler)
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.