Tworzę klienta REST za pomocą funkcji Feign. Mam działające telefony, ale chcę dodać trochę czasu na wsparcie i mam trochę czasu, zastanawiając się, jak to zrobić.Ustawianie limitu czasu żądania za pomocą narzędzia Netflix Feign i Hystrix
Dokumentacja Feign mówi: "aby użyć Hystrix z Feign, dodaj moduł Hystrix do swojej ścieżki klasy, a następnie użyj konstruktora HystrixFeign." Ok, więc teraz mam to:
service = HystrixFeign.builder()
.decoder(new GsonDecoder())
.target(ProjectService.class, URL_TO_BE_MOVED_TO_PROPS);
Teraz wszystkie moje metod wracają HystrixCommands, które można wykonać lub kolejki, ale nadal nie mogę zobaczyć, jak je skonfigurować.
Hystrix wiki (https://github.com/Netflix/Hystrix/wiki/Configuration) mówi, że konfiguracja powinna być dodana do konstruktora HystrixCommand jak ten:
Ale moje rozkazy są budowane/deklarację udawać, więc nie mam dostępu do konstruktorzy.
jeszcze jedno warto zwrócić uwagę jest to, że readme Feign-Hystrix (https://github.com/Netflix/feign/tree/master/hystrix) mówi: „Aby korzystać hystrix z udawać, dodać moduł hystrix na ścieżce klas. Następnie należy skonfigurować udawać używać HystrixInvocationHandler”, ale w wyszukiwarce Google HystrixInvocationHandler zwraca mi uwagę na repozytorium inne niż Netflix. Nawet jeśli użyłem tego, nie wiem, jak skonfigurować Feign, aby go użyć.
Proszę mi powiedzieć, że jestem głupi i że jest to bardzo proste, co sprawi, że poczuję radość z powodu tego problemu i wstyd, że nie jestem w stanie sam tego rozgryźć.
TL; DR: Chcę ustawić limity czasu na żądania wysłane przez mojego klienta Feign. Jak to zrobić?
pracował dla mnie. Ustawiam domyślną zamiast konkretnej metody. 'ConfigurationManager.getConfigInstance(). SetProperty (" hystrix.command.default.execution.isolation.thread.timeoutInMilliseconds ", 5000);' – n0daft
Gdzie dokładnie uruchomiłeś ten wiersz kodu? Bez względu na to, co ustawiłem, czas oczekiwania wynosi nadal 1000 ms na wszystkich moich udawanych klientach. – bitsofinfo
Moja metoda 'configureHystrix()' jest uruchamiana zaraz po użyciu HystrixFeign do skonstruowania mojego proxy: serviceProxy = HystrixFeign.builder(). Client (nowy OkHttpClient()) .target (ProjectServiceProxy.class, config.getHostURL()); configureHystrix(); – Disgruntor