反应性Java Webflux请求在60秒后终止

时间:2018-11-02 18:53:08

标签: java nginx spring-webflux

我对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>

1 个答案:

答案 0 :(得分:1)

在这种情况下,Nginx反向代理将关闭与WebFlux应用程序的连接。

此关闭事件作为cancel事件在响应链上转发,这意味着从下至上取消了对请求的处理。这实际上是一个非常简洁的功能,因为它使应用程序有机会停止处理事物并正确清理资源。