2016-02-05 4 views
1

Я использую @HystrixCommand для создания резервных копий на сервере java.HystrixCommand аннотация - как сделать резерв с броском

Вот один из методов, который у меня есть, но проблема, с которой я сталкиваюсь, - это интересно узнать, позволено ли мне бросить назад?

@HystrixCommand(fallbackMethod = "doFallback", commandKey = "doFallbackCommand") 
    public Response getGraphPoints(String Id, String position) { 

//do some work ... finally create a response 

     return a_response; 

    } 

    public Response doFallback(String Id, String position) { 
    //can i do this in hystrix command ? or do i really have to return a Response here?no other method will catch this throw for now 
     throw new ServiceUnavailableException("points could not be found"); 
    } 

Причина им запрашиваемая в том, что, когда я запускаю это им получить следующее сообщение об ошибке:

ERROR [HystrixTimer-1] [com.netflix.hystrix.contrib.javanica.command.GenericCommand] [myserver] failed to processed fallback is the method: 'doFallback'. 
+0

Читайте здесь https://github.com/Netflix/Hystrix/tree/master/hystrix-contrib/hystrix-javanica#fallback, в котором есть некоторые примеры. Надеюсь, поможет. – pradex

ответ

2

У меня была такая же проблема, теперь я понимаю немного хау Hystrix работы. Hystrix не требует установки одного резервного метода. Если вы не хотите возвращать данные по умолчанию или добавить бизнес-логику для этого случая, это необязательно. Если вы выбросите исключение, вы будете «путать» hystrix, поэтому он будет генерировать исключение HystrixRuntimeException.

Надеюсь, это поможет.

Смежные вопросы