如何在骆驼Servlet路由上设置超时时间

问题描述 投票:0回答:2

我想在servlet路由上设置超时。

public class MyCamelRoute extends RouteBuilder {


    @Override
    public void configure() throws Exception {
        restConfiguration()
                .component("servlet")
                .enableCORS(true)
                .contextPath("/")
                .bindingMode(RestBindingMode.json);
        onException(IOException.class)
                    .handled(true)
                    .process(bean:handleProcess);

        rest("/get").get(/user).to("direct:getusers");
        from("direct:getusers")
                .prpcess(bean:exchangeProcess)
                .to("http4:xx:8080/getuser?httpClient.connectTimeout=1000&bridgeEndpoint=true")
                .process(xxx)
                .to(xxxx)....
;

[如果有人致电GET ../ get / user花费的时间太长,则此服务将自行取消请求。例如连接超时和返回超时异常,请分配状态代码504。

我不知道该怎么做,或者我可以使用或更改的任何选项。

有人可以帮我这个忙吗?谢谢!

servlets apache-camel settimeout
2个回答
0
投票

您已经使用httpClient.connectTimeout=1000,尝试将httpClient.soTimeout=100添加到URI中以使请求超时(套接字超时)为100ms

如果超时,底层的httpClient可能会抛出一个异常,您可以使用Camel Exception子句来处理。

onException(WhateverExceptionOccursOnTimeout.class)...

0
投票

您可以尝试添加这些。

connectionRequestTimeout

connectTimeout

[https://camel.apache.org/components/2.x/http4-component.html][1]

© www.soinside.com 2019 - 2024. All rights reserved.