我有一个Observable方法,其调用方式如下
Observable<Optional<data1>> data1Observable = Observable.fromCallable(() ->
java.util.Optional.ofNullable(service.getData()))
.subscribeOn(Schedulers.io())
.onErrorReturn(error -> {
logger.error("Failed to fetch data={}", error.getMessage());
return Optional.empty();
});
Observable<Optional<data2>> data2Observable = Observable.fromCallable(() ->
Optional.ofNullable(service2.getData()))
.subscribeOn(Schedulers.io())
.onErrorReturn(error -> {
logger.error("Failed to fetch data2={}", error.getMessage());
return Optional.empty();
});
Observable.zip(data1Observable, data2Observable, (data1Response, data2Response) -> {
//Do something with data
}).blockingFirst();
Service class
-------------
@HystrixCommand(commandKey = "testService", fallbackMethod = "fallBackMethod")
public data getData(){
// Fire up downstream service to get data
}
public String fallBackMethod() {
return new data1();
}
运行应用程序时,它总是会遇到thread interrupted
异常。我也无法从异常消息中获得太多信息。但是,只要删除@HystrixCommand
批注,一切都很好。我在应用程序中使用RxJava 2。请告诉我为什么会遇到中断的异常。预先感谢。