【问题标题】:Spring Boot REST API request timeoutSpring Boot REST API 请求超时
【发布时间】:2018-09-11 07:06:57
【问题描述】:

我有一个简单的spring-boot 应用程序,它与 mongodb 连接并公开数据。这是我的控制器。

@RequestMapping(value = "/{coll}", method = RequestMethod.GET)
    public List<Map> retrieveMongoData(@PathVariable("collection") String collection ,
                                       @RequestParam Map<String,String> requestParams) throws Exception{

        Query query = new Query();  
        ........  
        return mongoTemplate.find(query, Map.class, collection);
    }

现在我需要向 REST API 添加请求超时。 Here 解释了一个返回 Callable 的解决方案。

在我的情况下,我在控制器中返回 List&lt;Map&gt;。如何在遵守控制器的同时实现超时功能。

【问题讨论】:

  • 返回Callable&lt;List&lt;Map&gt;&gt;?你问的是这个吗?
  • 那么,我是要更改控制器的返回类型还是可以单独实现
  • 是的,更改控制器返回类型完全没问题。

标签: spring rest api spring-boot


【解决方案1】:

通过点击您提供的链接,您可以将处理请求的方式从同步更改为异步,这可以解决您的问题,但不要忘记这会引入新的开销(如果您的请求并不真正需要异步加工)。我认为更好的方法是直接使用连接超时配置嵌入式 tomcat,所以我想通过在.properties 文件中添加:server.tomcat.connection-timeout=20000,这将使请求的最长时间为 20 秒。

【讨论】:

    猜你喜欢
    • 2016-04-23
    • 2022-09-28
    • 2016-09-13
    • 2021-09-22
    • 1970-01-01
    • 2019-11-06
    • 1970-01-01
    • 1970-01-01
    • 2021-07-11
    相关资源
    最近更新 更多