首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在春反应蒙古包中立即返回误差?

如何在春反应蒙古包中立即返回误差?
EN

Stack Overflow用户
提问于 2018-10-07 09:36:28
回答 1查看 447关注 0票数 1

当将文档保存到mongodb时,我正在测试一些错误处理。为了触发错误,在spring成功启动之后,我停止了mongo服务器。然后我发送了保存文档的请求。

在代码失败后不久,因为它无法连接到mongo服务器,但是请求需要65+秒才能返回postman中的错误。

是否有一种方法可以在抛出异常后立即返回错误?例如ConnectException

当前处理保存错误的代码:

代码语言:javascript
运行
复制
return myRepository
    .save(doc)
    .map { ResponseEntity(mapOf(Pair("id", it.id)), HttpStatus.OK) }
    .onErrorReturn( ResponseEntity(emptyMap(), HttpStatus.INTERNAL_SERVER_ERROR))

EN

Stack Overflow用户

回答已采纳

发布于 2018-10-07 10:10:47

由于超时处于mongo级别,所以不能仅针对端点重写超时,但可以在反应性管道中引入另一个超时,如下所示:

代码语言:javascript
运行
复制
return myRepository
.save(doc)
.timeout(Duration.ofSeconds(1))
.onErrorReturn( ResponseEntity(emptyMap(), HttpStatus.INTERNAL_SERVER_ERROR))
.map { ResponseEntity(mapOf(Pair("id", it.id)), HttpStatus.OK) }

注意!引入的超时解决了您快速返回错误的问题,但是下划线mongo连接还在等待,直到它到达mongo超时为止。可能更好的选择可能是调优默认的mongo连接超时,并使用反应性管道让web服务器线程很快释放。

我希望它能帮到你

票数 2
EN
查看全部 1 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52687211

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档