【发布时间】:2013-08-05 15:08:59
【问题描述】:
我有 1,000,000 个 ID,并且需要每天为每个用户调用一次 REST API。如何使用 Camel 发送批量 HTTP 请求?
我目前的解决方案是使用 Quartz 为每个 ID 创建一个 HTTP 组件。但它会创建 1,000,000 个 Quartz 工作,性能很差。
我有两个想法:
如果 Camel 可以提供批处理 API,我可以使用它发送 1,000,000 请求相同的 URL 但具有不同的参数。那是一个 石英作业。 Camel 是否支持该 API?
每个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");
}
});
}
【问题讨论】:
标签: apache-camel quartz-scheduler soa esb eip