我对Reactive Java还是陌生的,在我们的应用程序中,我们将带有webflux的Reactive Java用于restapi。 我们的一个api需要花费一分钟以上的时间进行响应,而60秒钟后,我发现邮递员中的504网关超时。但是,我可以看到该进程(在API下)突然终止,并显示以下消息。我希望我的api即使在60秒后请求超时后也能继续进行处理。不知道如何在反应式Java中做到这一点。 还要运行带有nginx的docker镜像的应用。
**Process terminating abruptly with following message**
reactor.Flux.FlowableAs.1 -
| cancel()
**504 gateway timeout response.**
<html>
<head>
<title>504 Gateway Time-out</title>
</head>
<body bgcolor="white">
<center>
<h1>504 Gateway Time-out</h1>
</center>
<hr>
<center>nginx</center>
</body>
</html>
答案 0 :(得分:1)
在这种情况下,Nginx反向代理将关闭与WebFlux应用程序的连接。
此关闭事件作为cancel
事件在响应链上转发,这意味着从下至上取消了对请求的处理。这实际上是一个非常简洁的功能,因为它使应用程序有机会停止处理事物并正确清理资源。