
Здравствуйте.
Сегодня я хочу рассказать, как использовать Apache Camel для создания планировщика для вызова REST API.
- 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