使用@HystrixCommand注释Observable方法时,发生线程中断异常

时间:2019-10-10 02:06:23

标签: java spring-boot rx-java rx-java2 hystrix

我有一个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。请告诉我为什么会遇到中断的异常。预先感谢。

0 个答案:

没有答案