如何使用camel发送批量http请求?

时间:2013-08-02 03:18:51

标签: apache-camel quartz-scheduler soa esb eip

我有1,000,000个ID,需要每天为每个用户调用一次REST API。如何使用Camel发送批量HTTP请求?

我目前的解决方案是使用Quartz为每个ID创建一个HTTP组件。但它会创造1,000,000个Quartz工作,性能很差。

我有两个想法:

  1. 如果Camel可以提供批处理API,我可以使用它来发送1,000,000 请求相同的URL但具有不同的参数。那是一个 石英工作。 Camel是否支持该API?

  2. 每个HTTP请求只访问一次,并使用spring schedule 控制。但是对于每个请求,Camel将轮询服务器。我怎么能够 make Camel只调用一次REST API吗?

  3. 这里的代码:

    // 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");
            }
    
        });
    }
    

1 个答案:

答案 0 :(得分:0)

创建数百万条路由以发送具有不同ID的请求可能会更加激烈。 在bean的帮助下,您可以定义在bean方法中发送请求的循环。

顺便说一句,您可以使用邮件标题“CamelHttpQuery”更改ID。