Как я понимаю ваш вопрос, что вам нужно сделать, это:
шаги
- Конечная точка для доступа к некоторому API через HTTP-вызов.
- Если ответ не приходит в течение 1 секунды, вам нужно получить исключение.
- В случае возникновения исключения вам необходимо перезапустить сервис и снова отправить запрос.
Вы можете сделать это в сотрудничестве с Akka Http и Akka Actors.
С помощью актеров Akka вы можете сообщить своему сервису, что нужно делать, когда вы получаете TimeoutException. Вы можете сделать свой вызов API через шаблон запроса Akka.
Если вы увидите документацию Акки, задайте шаблон здесь . это берет тайм-аут запроса Akka, который вы можете установить на любое значение, которое вы хотите. В случае, если вы не получаете ответ обратно в тайм-аут, вы получите AkkaAskTimeOutException, который будет перехвачен вашим дочерним актором, а затем будет передан актеру супервизора , В то время как субъект-супервизор ловит исключение, мы можем использовать стратегию супервизора и указать, что нужно сделать, например (перезагрузка, завершение работы, возобновление и т. Д.).
Стратегия супервизора: Вы можете прочитать об этом здесь . Ниже приведена базовая структура приложения, основанного на актере akka.
Актер супервизора (мы пишем стратегию супервизора в супервизоре), и у него есть дочерние актеры.
child1 (бизнес-логика) child2 (бизнес-логика)