【问题标题】:Java do not keep request idleJava不保持请求空闲
【发布时间】:2021-04-06 16:24:36
【问题描述】:

我正在为 java (java 8) 应用程序 (.war) 使用 Azure Web 应用程序(应用程序服务)。它使用 spring 4 和 JSP。

有些请求需要超过 4-5 分钟才能发送响应。

Azure 应用服务有一个限制,如果一个请求在 230 秒内没有得到任何响应,它会抛出请求超时,我们无法更新这个超时时间。

我想知道是否有办法确保在响应仍在准备中时请求不会保持空闲状态(例如,如果尚未发送响应,则每 3 分钟一次)。

【问题讨论】:

  • 我将有一个 /request 端点,它启动在后台线程中运行的请求,以及一个可以由客户端轮询的 /status 端点(或者在请求中指定回调 URL,如果更适合您的架构)

标签: java spring servlets azure-web-app-service


【解决方案1】:

对于这个问题,你可以异步请求,发送请求并响应202。然后客户端检查请求的工作,完成后返回200。

您也可以将您的代码移动到azure function,它的执行时间比应用服务更长。即使你不使用持久化函数,只要使用普通函数和消费计划,它就可以set超时时间最长为10分钟,可以满足你4-5分钟的要求。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-03-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多