骆驼Java Routebuilder超时

时间:2015-04-30 13:24:52

标签: java apache-camel

我有一个Camel路由器,定义了以下路由:

from(route).routeId("route1")
                .bean(myBean)
                .setHeader(Exchange.HTTP_METHOD, constant("GET"))
                .to("log:get-data-request?level=INFO&ShowHeaders=false&ShowBody=true")
                .to(myURI)
                .to("log:get-data-response?level=INFO&ShowHeaders=false&ShowBody=true")

是否可以为此路由添加超时,以便如果myURI的回复时间超过10秒,则会引发某种异常?

目前,如果没有立即响应,我的应用程序似乎挂起请求等待。

1 个答案:

答案 0 :(得分:0)

您能指定哪种端点 toUri

  • 如果它是一个HTTP [1]端点,并且您正在调用REST端点,则可以使用所需的SocketTimeout在http调用下设置Apache HTTP组件。
  • 如果要调用另一个Camel端点,可以使用Camel提供的Async [2]策略。使用Future Exchange,您可以设置原始端点等待的时间。然而,第二个线程可以保持活力并完成任务。

[1] http://camel.apache.org/http.html [2] http://camel.apache.org/async.html