我的操作花費30分鐘到由靜止呼叫請求而被調用進程。我想給客戶立即迴應,告訴正在進行的操作,並且處理應該發生在另一個線程中,解決這個問題的最好方法是什麼,推遲結果是唯一的方法。長輪詢
Q
長輪詢
0
A
回答
0
30分鐘是很長的時間。我建議你使用websocket
s推進進度更新和操作狀態。
0
既然你提供其他服務,另一種方法可以立即返回「接受」(202)或「創造」(201)到客戶端,並提供鏈接到其他服務,將提供有關的進展狀態更新處理。通過這種方式,客戶端可以自由決定是否輪詢服務器以獲取更新,或者僅向用戶提供「更新狀態」按鈕。
0
使用消息隊列(ActiveMQ的,Redis的)。從客戶端
- 發送請求。
- 控制器獲取請求,在消息隊列中發佈進程/消息。
- 發送迴應給客戶說它正在處理。
- 在消息隊列中查找更改/新進程的另一個線程。
- 執行過程 - 更新消息隊列中的狀態,每一步完成。 - (開始/運行/完成/失敗)。
- 您可以顯示過程每次與過程的隊列中的ID的狀態。
相關問題
- 1. AJAX輪詢頻率 - 要長期輪詢還是不輪詢長輪詢?
- 2. Java長輪詢
- 3. Angularjs長輪詢
- 4. 輪詢vs長輪詢與推(
- 5. Django Gunicorn長輪詢
- 6. WebSockets和長輪詢
- 7. 長輪詢實施
- 8. 長輪詢事件
- 9. 長輪詢事件
- 10. 長輪詢混淆
- 11. 春季長輪詢ConcurrentModificationException
- 12. Simpliest蟒蛇長輪詢
- 13. PHP - 長輪詢通知
- 14. Rails:長輪詢實踐
- 15. 長輪詢服務器
- 16. jQuery的AJAX PHP長輪詢
- 17. 長輪詢與Java和JBoss
- 18. 阿賈克斯長輪詢
- 19. PHP長輪詢失敗
- 20. 使用NSURLConnection的長輪詢
- 21. 卡夫卡長輪詢
- 22. ajax與mysql的長輪詢
- 23. 使用異步長輪詢?
- 24. 長角度輪詢問題
- 25. 長輪詢不會停止
- 26. 不能實現長輪詢
- 27. 長輪詢 - 某些秒
- 28. SignalR長輪詢傳輸
- 29. 擴展聊天應用 - 短輪詢與長輪詢(AJAX,PHP)
- 30. 長輪詢阿賈克斯問題
Spring 4.2支持服務器發送的事件http://zjhzxhz.com/2015/06/use-server-sent-event-in-spring-4-2/ –