У меня 1 000 000 идентификаторов, и мне нужно вызывать REST API один раз в день для каждого пользователя. Как я могу использовать Camel для отправки пакетных HTTP-запросов?
Мое текущее решение состоит в том, чтобы создать компонент HTTP для каждого идентификатора, используя Quartz. Но это создаст 1 000 000 рабочих мест Quartz, производительность плохая.
У меня есть две идеи:
Если бы Camel мог предоставить пакетный API, я мог бы использовать его для отправки 1 000 000 запросов на один и тот же URL, но с разными параметрами. Это одна работа Quartz. Поддерживает ли Camel этот API?
Каждый HTTP-запрос посещает только один раз и использует весеннее расписание для управления. Но для каждого запроса Camel будет опрашивать сервер. Как я могу заставить Camel вызывать REST API только один раз?
Коды здесь:
// ids is a List, contains 1,000,000 id
for (final String id : ids) {
context.addRoutes(new RouteBuilder() {
@Override
public void configure() throws Exception {
from(String.format("quartz://%s/?cron=0+0+12+*+*+?", id))
.to(String.format("http:xxx.com?id=%s", id))
.to("file:to");
}
});
}