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