我使用的是Spring Boot版本2.0.6.RELEASE
我有以下 API 方法
@RequestMapping(value = "/searchData", produces = { MediaType.APPLICATION_JSON_VALUE }, method = RequestMethod.GET)
public Future<List<DataEntryBean>> getSearchData() {
return CompletableFuture.supplyAsync(() -> {
List<DataEntryBean> dataList = dataService.getSearchData();
return dataList;
});
}
getSearchData方法运行大约需要40秒。30秒后,我的代码超时,日志中显示以下消息:
Resolved [org.springframework.web.context.request.async.AsyncRequestTimeoutException]
并返回以下json响应
{
"timestamp": 1544094968149,
"status": 503,
"error": "Service Unavailable",
"message": "No message available",
"path": "/searchData"
}
getSearchData()方法继续执行,并最终在日志中显示为完成。如果我去掉未来返回类型,只返回一个列表,代码就能正常工作。我已经尝试了以下属性,但不幸的是没有成功。
spring.mvc.async.request-timeout=-1
server.connection-timeout=-1
有谁知道我需要做些什么才能解决这个问题,并且仍然允许我返回Future类型?
谢谢达米安
尝试将这两个属性设置为特定值,如60或120。此外,将<code>@enablesync@Async添加到方法中。
非异步请求没有超时设置,所以当您删除future返回类型时,异步请求就变成了非异步请求,并且工作正常。
spring.mvc.async。请求超时
是异步请求的超时设置。
您可以将其设置为更大的数字,例如60000,或者只更改返回类型。
我不认为-1
意味着异步请求没有超时,实际上没有办法为异步请求设置没有超时。
有一个方面的未来,我不完全理解从官方教程参考。http://docs.scala-lang.org/overviews/core/futures.html scala中的期货是否有某种内置的超时机制?假设下面的示例是一个5GB的文本文件...“Implicits.global”的隐含范围最终会导致onFailure以非阻塞方式触发还是可以定义?如果没有某种默认的超时,这是否意味着成功或失败都不会触
我对Spring Boot cassandra web应用程序有问题。随着数据的增长,它开始出现,现在它是一个非常常见的场景。 所有查询有时都不起作用,返回。几秒钟后它又开始工作了,几秒钟后它就不工作了。所以web应用程序不断返回或响应。相同的查询始终在中工作。 我正在使用: Spring启动启动程序 sping-boo-starter-data-cassandra#2.1.3 Cassandra
我正在使用Spring Boot版本2.1.9。带有Web、会话、安全、jdbc和jpa启动器的RELEASE。在我的应用程序中一切正常,直到我尝试覆盖默认会话超时值,application.properties中有以下行: 如果添加这一行,在启动Spring时,我会得到以下错误: 我还尝试了不同的格式,如180s或PT180S,但都不起作用。根据Spring文档或同一文档的其他变体,只有整数的版
我想对Spring数据使用ElasticSearch。我使用的是Spring 5、Spring Boot 2和ElasticSearch 7.4。Docker compose: 马文: 存储库: 配置: 和错误时启动应用程序: 引起:java.lang.NoSuchMEDError:org.springframework.http.HttpHeaders.(Lorg/springframe/uti
我是一名spark Scala程序员。我有一份spark工作,其中包含完成整个工作的子任务。我想使用ToFutures并行完成子任务。一旦完成整个工作,我必须返回整个工作响应。 关于scala Futures,我听说一旦主线程执行并停止,其余线程将被终止,并且您将得到空响应。 我必须使用等待。结果以收集结果。但是所有的博客都告诉你应该避免等待。结果是,这是一个糟糕的做法。 正在使用等待。在我的案例
当SpringWebServiceStarter与2.1一起使用时,我无法构建SpringBoot应用程序。13.Spring护套的释放版本。这是因为SpringWS-core:jar:3.0。8.释放。 构建应用程序时出现异常:它出现在默认测试用例执行期间。 警告: 组织的POM。springframework。ws:springws-core:jar:3.0。8.版本无效,可传递依赖项(如果有