При аннотировании метода Observable с помощью @HystrixCommand возникает исключение прерывания потока - PullRequest
0 голосов
/ 10 октября 2019

У меня есть метод 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 в приложении. Пожалуйста, дайте мне знать, почему возникает прерванное исключение. Заранее спасибо.

...