代码之家  ›  专栏  ›  技术社区  ›  cppNoob

web应用程序中的长时间运行操作

  •  1
  • cppNoob  · 技术社区  · 9 年前

    Web应用程序操作通常意味着快速,以避免用户等待时间过长。然而,web应用程序可能执行的某些操作可能需要大量计算,并且需要相当长的时间。REST中处理此类可能需要几分钟时间但需要立即响应用户的操作的最佳实践是什么?web应用程序可以花几分钟时间返回HTTP请求的响应吗?还是最好返回202响应,在其他地方的后台处理,然后向用户提供某种形式的通知?

    1 回复  |  直到 9 年前
        1
  •  0
  •   VoiceOfUnreason    9 年前

    web应用程序可以花几分钟返回HTTP请求的响应吗

    不。这种方法的部分问题是,如果服务器不及时确认请求,客户端将不知道它已到达预期目的地。

    是否最好返回202响应,在其他地方的后台处理,然后向用户提供某种形式的通知?

    对这正是202 Accepted的设计宗旨

    202号回复故意不明确。其目的是允许服务器接受对某些其他进程的请求(可能是一个面向批处理的进程,每天只运行一次),而不需要用户代理与服务器的连接持续到进程完成为止。随此响应一起发送的表示应该描述请求的当前状态,并指向(或嵌入)状态监视器,该监视器可以向用户提供请求何时满足的估计。