2011-10-18 80 views
0

我們如何確定servlet正在執行的Job的狀態。 如果sservlet創建一個Job Object並調用它需要2分鐘才能完成的do()方法,並且我們想向用戶顯示它到目前爲止在前端完成了多少任務。從servlet獲取狀態

+0

取決於如何執行'作業'。 –

+0

可以說這個Job有一個實例變量「processCounter」,它不斷增加,我想向用戶顯示這個變量 – Chandan

+0

你可以輪詢服務器並更新前端的狀態 – Cratylus

回答

1

你必須

  • 把工作中的會話屬性,例如,或在一些其他共享地圖,您可以找到它在後續請求
  • 啓動一個新的線程調用哪個作業的長時間運行的方法
  • 確保作業的狀態每次訪問都是正確同步
  • 輪詢服務器從你的HTML頁面(通過刷新頁面或提交Ajax請求

每個輪詢請求只會從會話(或共享地圖)獲取作業並獲取其狀態。