Java 带有ReadStreamAdapter的retryWhen中存在IllegalStateException
当对我的一个外部服务的外部http请求失败时,我正在使用Java 带有ReadStreamAdapter的retryWhen中存在IllegalStateException,java,java-8,rx-java,vert.x,Java,Java 8,Rx Java,Vert.x,当对我的一个外部服务的外部http请求失败时,我正在使用retryWhen。 问题是我正在使用 RxHelper.toObservable(httpClient.request(method, url)) 为了获得可观察到的响应,并且由于vertx在内部使用ReadStreamAdapter,我不能使用retryWhen,因为它是 java java.lang.IllegalStateException: Request already complete 下面是一个代码示例: Rx
retryWhen
。
问题是我正在使用
RxHelper.toObservable(httpClient.request(method, url))
为了获得可观察到的响应,并且由于vertx在内部使用ReadStreamAdapter,我不能使用retryWhen,因为它是
java java.lang.IllegalStateException: Request already complete
下面是一个代码示例:
RxHelper.toObservable(httpClient.request(method, url))
.retryWhen(new ServiceExceptionRetry())
.subscribe(f -> replySuccess(eventMsg, event, f), t -> handleError(t, eventMsg, event));
您知道如何实现这一点吗?您可以使用
延迟
从方法
和客户机
创建一个可观察的方法,每次都是这样:
Observable.defer(() -> RxHelper.toObservable(httpClient.request(method, url)))
.retryWhen(new ServiceExceptionRetry())
.subscribe(f -> replySuccess(eventMsg, event, f), t -> handleError(t, eventMsg, event));