从Executer Service使用Java Observable进行休息服务(Rest Service with Java Observable from Executer Service)

编程入门 行业动态 更新时间:2024-10-26 11:17:57
从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.

更多推荐

本文发布于:2023-08-01 03:56:00,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1352918.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:Service   Executer   Java   Rest   Observable

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!