当前位置: 首页 > 知识库问答 >
问题:

设置一个读超时为RestTem板

赫连俊悟
2023-03-14

我使用SpringRESTTemplate从应用程序向不同的RESTendpoint发出简单的POST请求。目前,我在Spring配置文件中设置了readTimout,如下所示:

<bean id="restTemplate" class="org.springframework.web.client.RestTemplate">
    <constructor-arg>
        <bean class="org.springframework.http.client.HttpComponentsClientHttpRequestFactory">
            <property name="readTimeout" value="10000" />
            <property name="connectTimeout" value="10000"/>
        </bean>
    </constructor-arg>
</bean>

最近,我的任务是根据每个请求动态设置readtimeout

我想每次发出POST请求时,我都必须向restTemplate中注入一个新的RequestFactory和新的超时值,但这是一种可以接受的方法吗?有更好的办法吗?

共有1个答案

左丘楷
2023-03-14

每次我发现我可以在HttpComponentsClientHttpRequest estFactory对象上显式设置读取超时,而不是向restTem板中注入一个新的请求工厂

((HttpComponents客户端HttpRequestFactory)restTemplate。getRequestFactory())。setReadTimeout(超时)

 类似资料:
  • 当微服务处理业务逻辑时间过长,网关会报超时错误,默认等待时间是5秒。 可在网关指定spring.cloud.gateway.httpclient.response-timeout参数设置超时时间,单位毫秒 # 设置响应超时10秒 spring.cloud.gateway.httpclient.response-timeout=10000 更多配置参见:org.springframework.cl

  • <?php $http = HttpRequest::newSession(); $response = $http->timeout(3000, 1000) // 总时间不得超过3秒,连接时间不得超过1秒 ->get('https://www.baidu.com/'); $content = $response->body(); // 网页源码

  • 我有一个TcpClient,用于将数据发送到远程计算机上的侦听器。远程计算机有时打开,有时关闭。因此,TCP客户端将经常无法连接。我希望TcpClient在一秒钟后超时,这样当它无法连接到远程计算机时就不会花费太多时间。目前,我对TcpClient使用以下代码: 这对于处理任务来说已经足够好了。如果可以,它会发送它,如果无法连接到远程计算机,它会捕获异常。然而,当它无法连接时,抛出异常需要10到1

  • 我想设置订阅请求的读取超时。现在唯一的选择是设置,或者只是等到pubsub返回,如果没有发布消息,这似乎是90秒。 我正在使用gcloud-node模块调用PubSub。它使用底层的请求模块进行gcloud api调用。我已经更新了gcloud-node/lib/pubsub/subscription.js的本地副本,将请求超时设置为30秒 更新:我可能需要澄清一下我的例子。我有两个客户端连接在同

  • 我正在使用Netty框架并实现客户端和服务器。我建立了多达1000个连接。我想在多个地方配置超时值。其中一些我能理解。下面是我的netty实现的netty行为: 1。许多异步连接都是从具有超时的客户端开始的(使用ChannelOption.CONNECT\u timeout\u MILLIS配置) 2。那些能够连接的客户端连接使用channelActive发送HTTP请求,并使用channelRe

  • 可以为用户输入设置计时器吗?等待10秒钟-进行下一步操作等。我的意思是例如