我有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将轮询服务器。我怎么能够 make 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 :(得分:0)
创建数百万条路由以发送具有不同ID的请求可能会更加激烈。 在bean的帮助下,您可以定义在bean方法中发送请求的循环。
顺便说一句,您可以使用邮件标题“CamelHttpQuery”更改ID。