Здравствуйте.
Сегодня я хочу рассказать, как использовать Apache Camel для создания планировщика для вызова REST API.

  1. Apache Camel имеет базовый класс с именем RouteBuilder.class, который является производным от для создания правил маршрутизации с использованием DSL (специфического для домена языка).
@Component
public class HelloSchedulerRoute extends RouteBuilder {

    @Override
    public void configure() throws Exception {
        from("timer://simpleTimer?period=1000")
                .bean(HelloClientService.class, "hello")
                .log("${body}");
    }

}

В коде выше и в основной части мы запускаем таймер каждые 1000 мс для вызова метода hello HelloClientService и регистрации результата функции. Есть и другие настройки компонента таймера. https://camel.apache.org/components/3.15.x/timer-component.html

2. Это HelloClientService.class, который использует клиент Feign под названием HelloClient для вызова запроса REST API, который возвращает HelloResponse.

@Component
@AllArgsConstructor
public class HelloClientService {

    private final HelloClient helloClient;

    public HelloResponse hello() {
        return helloClient.hello();
    }

}

Исходный код https://github.com/darkhaniskakov/scheduler