2013-08-02 1 views
0

У меня есть 1 000 000 идентификаторов, и вам нужно вызвать REST API один раз в день для каждого пользователя. Как я могу использовать Camel для отправки пакетных HTTP-запросов?Как использовать запрос на отправку веб-сайта верблюда?

Моим текущим решением является создание HTTP-компонента для каждого ID с использованием Quartz. Но он создаст 1000 000 кварцевых рабочих мест, производительность плохая.

У меня есть две идеи:

  1. Если верблюд может обеспечить пакетное API, я мог бы использовать, чтобы отправить 1,000,000 запросы на тот же URL, но с разными параметрами. Это одна Кварцевая работа. Поддерживает ли Camel этот API?

  2. Каждый 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"); 
     } 

    }); 
} 

ответ

0

Это может более вертикальной качки создать миллион маршрутов для отправки запроса с другим идентификатором. с помощью bean, вы можете определить цикл отправки запроса в методе bean.

BTW, вы можете изменить идентификатор с заголовком сообщения «CamelHttpQuery».

+0

Любой пример? ваше значение означает изменение идентификатора с заголовком сообщения «CamelHttpQuery» может агрегировать несколько запросов на один? – terrymanu