2017-07-04 44 views
1

Web应用程序操作通常旨在避免用户长时间等待。但是,Web应用程序可能执行的一些操作可能是计算密集型的,需要花费相当长的时间。 REST中处理这种可能需要几分钟的操作的最佳实践是什么,但需要立即对用户做出响应? Web应用程序可能需要几分钟时间才能返回HTTP请求的响应,还是更好地在其他地方的后台返回202响应,然后向用户提供某种形式的通知?Web应用程序中的长时间运行

回答

0

它是没关系的Web应用程序需要几分钟才能返回HTTP请求的响应

这种方法的问题的零件号是,如果服务器不承认及时提出要求,客户不会知道它到达了预期的目的地。

是否更好地返回一个202响应,在其他地方的后台进程,然后向用户提供某种形式的通知?

是的。这正是202 Accepted所设计的

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

它可以帮助我记住我们正在谈论您的整合领域;客户端不会与您的应用程序交谈。而是与您的API进行交谈,该API假装成客户端可以与之集成的网站。因此,您的客户端将请求发送到API,并且API响应接收到的消息以及一系列链接,这些链接将帮助客户端继续使用协议并最终实现目标。

相关问题