You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@camel.apache.org by Vins Yu <vi...@gmail.com> on 2014/11/06 07:44:41 UTC
Camel to ingest data more than 200 HTTP url endpoints
Hi,
I'm building an app that grabs DATA from dynamic URLs which can reach
more than 200.
I tried the following
// this bean just generates dynamic url
public void createUrls(Exchange exchange) {
List<String> list = new ArrayList<String>();
for (int i = 0; i < 9; i++) {
list.add("resources" + i + data[i]);
}
exchange.getIn().setHeader("theList", list);
}
then I have a camel route
camel routes:
<route id="testing_loop">
<from uri="timer://execute?delay=5000&repeatCount=1"/>
<to uri="bean:dataProcessor?method=createUrls"/>
<split>
<header>theList</header>
<setHeader headerName="currentURL">
<simple>${body}</simple>
</setHeader>
<setBody>
<simple>${null}</simple>
</setBody>
<to uri="direct:go"/>
</split>
</route>
<route id="testing_get">
<from uri="direct:go"/>
<setHeader headerName="HTTP_METHOD">
<constant>GET</constant>
</setHeader>
<recipientList>
<simple>http://${in.header.currentURL}</simple>
</recipientList>
<to
uri="file:/project/data?fileName=${date:now:yyyyMMddHHmmss.SSSSSS}.json"/>
</route>
The above works if the list of URL is less than 90 but if it's more
than that, all the requests are getting
On delivery attempt: 0 caught: java.net.SocketException: Connection reset
I've also tried using:
<to uri="bean:dataProcessor?method=createUrls"/>
<removeHeaders pattern="CamelHttp*"/>
<removeHeaders pattern="Http*"/>
<split>
<header>codeURLS</header>
<setHeader headerName="currentUrl">
<simple>${body}</simple>
</setHeader>
<log message="Current URL: ${in.header.currentUrl}"/>
<setBody>
<simple>${null}</simple>
</setBody>
<setHeader headerName="Exchange.HTTP_URI">
<simple>${in.header.currentUrl}</simple>
</setHeader>
<to uri="http://dummyhost"/>
<to
uri="file:/tmp/output?fileName=${date:now:yyyyMMddHHmmss.SSSSSS}.js"/>
but same thing. It works for few URLS but anything more throws Connect reset.
Any idea what's the best way to do this?
I'm using Camel ver 2.12.3 and JDK 7
Thanks,
/Vins