Javaspring:如果花费的时间比指定的时间长,则返回对请求的响应



如果请求花费太长时间,spring是否有任何解决方案可以提前返回控制器方法?

这个想法是在http头中传递一个超时值,如果超过这个值,就会返回一个响应。

下面的控制器方法示例,我想将其应用于

@RequestMapping(value = "/test", method = RequestMethod.GET)
  public String test(@RequestHeader Long timeOut) {
    //process request here and return an error response if it goes longer than timeOut
    return "<Result of process request>";
  }

我可能可以通过摆弄线程来做到这一点,但我更愿意看看spring是否有一些解决方案。

谢谢。

将方法的返回类型更改为Callable<String>。这将使控制器方法异步执行。现在,为了设置处理请求的超时,您可以更新springmvc配置:

<mvc:annotation-driven>
    <mvc:async-support default-timeout="3000"/>
</mvc:annotation-driven>

或者,您可以在RequestMappingHandlerAdapter上设置超时值。

相关内容

  • 没有找到相关文章

最新更新