Hysterix Javanica AsyncResult Future.get Исключение

java hystrix spring-cloud-netflix

1078 просмотра

1 ответ

116 Репутация автора

У меня установлен Spring Cloud на моем локальном коте. Я использую клиент Feign для вызова удаленной службы, обернутой внутри команды Hysterix, одной прямой и другой асинхронной, как показано ниже.

@HystrixCommand(fallbackMethod = "fallBackEmployeeCall")
    public List<EmployeeBean> getEmployees() {
        //Call through Feign Client
        return empInterface.getEmployees();
    }

    //Async Version
    @HystrixCommand(fallbackMethod = "fallBackEmployeeCall")
public Future<List<EmployeeBean>> getEmployeesAsync() {
    return new AsyncResult<List<EmployeeBean>>() {
        @Override
        public List<EmployeeBean> invoke() {
            return empInterface.getEmployees();
        }
    };
}

Когда я вызываю getEmployeesAsync (). Get (), я получаю исключение ниже

java.lang.UnsupportedOperationException: AsyncResult - просто удар и не может использоваться как полная реализация Future

Это похоже на вопрос ниже: -

[https://github.com/Netflix/Hystrix/issues/1179][1]

Согласно документации, решение заключается в настройке класса HystrixCommandAspect, что я сделал следующим образом:

@Configuration
@EnableAspectJAutoProxy
public class HystrixConfiguration {

    @Bean
    public HystrixCommandAspect hystrixAspect() {
        return new HystrixCommandAspect();
    }

}

Но я все еще получаю то же исключение. Кажется, мне не хватает какой-то конфигурации. Примечание: - мой метод синхронизации работает нормально.

Автор: Khalsa_it Источник Размещён: 18.07.2016 05:46

Ответы (1)


1 плюс

31 Репутация автора

Решение

Вы можете попробовать вызвать getEmployeesAsyncдругой класс, в который добавлен экземпляр класса getEmployeesAsync. У меня тоже было это исключение. Тогда я делаю это так успешно.

Автор: Will Sun Размещён: 24.04.2017 09:40
Вопросы из категории :
32x32