gpt4 book ai didi

java - Camel Java Routebuilder 超时

转载 作者:行者123 更新时间:2023-11-30 11:04:38 26 4
gpt4 key购买 nike

我有一个 Camel routebuilder,其中定义了以下路由:

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. 已由@soilworker 解释 - http://localhost:9080/myservice?httpClient.soTimeout=5000 .参见单元测试here .

  2. 这不是正确的方法,但可以在简单的场景中使用。

    public static void main(String[] args) {
    JndiContext jndiContext = (new SetJndiContext()).SetJndiContext();
    CamelContext camelContext = new DefaultCamelContext(jndiContext);
    try {
    //camelContext.addRoutes(new MyRouteBuilder());
    camelContext.addRoutes(new FileDownloadRouter());
    camelContext.start();
    Thread.sleep(10000);
    camelContext.stop();
    } catch (Exception e) {
    e.printStackTrace();
    }
    }

基本上,当您的路由开始运行时,上下文将在 10 秒内自动关闭。同样,这不是理想的方法。选项 1 是正确的方法,但此方法也适用。

关于java - Camel Java Routebuilder 超时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29968961/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com