Резервный метод Spring Boot Hystrix не вызывается после истечения времени ожидания - PullRequest
1 голос
/ 23 октября 2019

Я хочу, чтобы резервный метод вызывался после того, как сервису требуется более 350 миллисекунд. Даже после 10 000 миллисекунд метод все еще не вызывается.

Я запускаю тест JUnit, в котором используется Mockito.

UnitTesting.java
...
@Test
public void test1() {

    when(service.getId()).thenAnswer(new Answer<Integer>() {
               public Integer answer(InvocationOnMock invocation){
                 try {
                    Thread.sleep(10000);
                } catch (InterruptedException e) {
                    e.printStackTrace();
                }
                 return -1;
    }});
    LateralService latService= new LateralService(service); 
    ArrayList<IdService> returnedIdServices = latService.getIdServices(); //getId() is invoked in this method
    ...
}

LateralService.java
...
@HystrixCommand(groupKey = "fallback",
                commandKey = "fallback",
                fallbackMethod = "idServiceFallBack",
                commandProperties = {
                   @HystrixProperty(name = "execution.isolation.thread.timeoutInMilliseconds", value = "350")})
public ArrayList<IdService> getIdServices() {
    int id = service.getId();

    ...
}

public ArrayList<IdService> idServiceFallBack(){
    return new ArrayList<IdService>() { add(new IdService(1)) }
}
...