2017-07-04 69 views
1

Web應用程序操作通常旨在避免用戶長時間等待。但是,Web應用程序可能執行的一些操作可能是計算密集型的,需要花費相當長的時間。 REST中處理這種可能需要幾分鐘的操作的最佳實踐是什麼,但需要立即對用戶做出響應? Web應用程序可能需要幾分鐘時間才能返回HTTP請求的響應,還是更好地在其他地方的後臺返回202響應,然後向用戶提供某種形式的通知?Web應用程序中的長時間運行

回答

0

它是沒關係的Web應用程序需要幾分鐘才能返回HTTP請求的響應

這種方法的問題的零件號是,如果服務器不承認及時提出要求,客戶不會知道它到達了預期的目的地。

是否更好地返回一個202響應,在其他地方的後臺進程,然後向用戶提供某種形式的通知?

是的。這正是202 Accepted所設計的

202響應是有意無意的。它的目的是允許服務器接受對某個其他進程(可能是每天只運行一次的面向批處理的進程)的請求,而不要求用戶代理與服務器的連接一直持續到進程完成。與此響應一起發送的表示應該描述請求的當前狀態並指向(或嵌入)狀態監視器,該狀態監視器可以向用戶提供關於何時將完成請求的估計。

它可以幫助我記住我們正在談論您的整合領域;客戶端不會與您的應用程序交談。而是與您的API進行交談,該API假裝成客戶端可以與之集成的網站。因此,您的客戶端將請求發送到API,並且API響應接收到的消息以及一系列鏈接,這些鏈接將幫助客戶端繼續使用協議並最終實現目標。

相關問題