0

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

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

我有两个想法:

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

  2. 每个HTTP请求只访问一次,并使用spring schedule来控制。但是对于每个请求,骆驼都会轮询服务器。如何让 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");
        }

    });
}
4

1 回答 1

0

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

顺便说一句,您可以使用消息头“CamelHttpQuery”更改 id。

于 2013-08-05T07:08:59.287 回答