从Executer Service使用Java Observable进行休息服务(Rest Service with Java Observable from Executer Service)
我有一个返回DeferredResults的休息Web服务。 我从返回Future的执行服务中实现了JavaRx Observable。 我希望这个Web服务是非阻塞的,但它似乎阻止了操作。
你认为我使用执行器服务的方式是健康的吗?
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); } });I have a rest web service which returns DeferredResults. I implemented JavaRx Observable from executer service that returns Future. I wanted this web service to be non blocking but it seems it is blocking the operation.
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); } });最满意答案
Observable.from(Future)是阻塞操作,如文档中所述。 您应该使用Observable.from(Future,Scheduler) 。
Observable.from(Future) is blocking operation, as mentioned in documentation. You should use Observable.from(Future,Scheduler) instead.
更多推荐
发布评论