如果我有一個長期運行的請求處理程序,用戶點擊瀏覽器的停止按鈕,我該如何終止處理程序,以便它不會繼續工作?我想一些簡單的像提高基於從另一個線程看門狗(因爲他們進來,誰給了連接),檢查客戶端連接狀態的線程中斷,但也許有更好的解決方案。如何停止/中斷servlet處理程序?
1
A
回答
0
如果用戶點擊停止按鈕你永遠不會知道它除了作爲連接復位。你沒有任何機會提出線程中斷:這意味着從瀏覽器到服務器中的另一個線程的另一個通信不會發生。
2
另一種更簡單的方法是使該長時間運行的過程異步,使用ExecutorService
從java.util.concurrent
。當聯邦快遞準備就緒時,立即返回並給予客戶一種獲得響應的方式。
的Servlet不應該執行的進程,同步或者非同步。他們的監聽HTTP請求,綁定和驗證輸入參數,路由到適當的服務,以滿足該請求,並編組到相應的視圖的響應。
0
處理此問題的一種方法是分別實現long work/req/proc並將狀態標誌暴露給狀態。選項。現在從你的servlet異步調用它。當客戶端按STOP時,來servlet檢查運行狀態並在需要時中斷並更新用戶。
相關問題
- 1. 如何停止處理程序執行
- 2. 如何停止處理程序?
- 3. 停止處理程序()。postDelay
- 4. android:停止處理程序
- 5. 如何停止鍵處理程序中的線程
- 6. 如何在Android中停止線程處理程序?
- 7. 如何在Android中停止線程和處理程序
- 8. 如何中斷懸停的處理程序輸出
- 9. 如何中斷事件處理程序
- 10. 如何停止servlet?
- 11. 如何停止多處理。進程
- 12. FFmpeg4Android如何停止處理?
- 13. 如何停止Python中的Windows鼠標處理程序?
- 14. 如何處理 - 應用程序已停止在Android中工作
- 15. 如何停止在批處理程序中啓動的VBScript?
- 16. MSVC6:斷點停止程序
- 17. 停止Android處理程序循環
- 18. 停止自己的處理程序
- 19. 要停止Java處理程序
- 20. 處理程序不停止 - Android
- 21. 在中斷處理程序
- 22. 線程處理程序停止處理方向更改
- 23. 如何停止進度條,當我們停止處理程序android
- 24. Java:如何中斷/停止線程?
- 25. 處理中斷的程序,即中斷處理程序存儲在哪裏?
- 26. 多處理:主程序停止,直到處理完成
- 27. jQuery:如何停止從blur()處理程序觸發change()事件?
- 28. 如何停止系列postDelayed處理程序
- 29. Android - 處理程序 - 如何停止意圖?
- 30. Javascript:如何停止多個jQuery ajax錯誤處理程序?