1
我有一個長期運行的任務(報告),它會在開始返回數據之前超過任何TCP連接超時。異步servlet(在Servlet 3.0中引入)正是我所需要的,但是我僅限於Servlet v2.4。 有沒有「自己動手」的解決方案?我在做什麼感覺被黑了 - 我在線程中異步啓動任務,並立即返回客戶端。然後,客戶端每隔幾秒輪詢一次(使用ajax),並檢查此任務ID的「準備就緒」狀態(靜態列表保持它們的狀態以及線程處理的對象的一些句柄)。準備就緒後,我將輸出流注入工作對象,以便線程可以將結果寫回客戶端。3.0版之前的異步Servlet解決方案?
使用異步servlet將只是servlet線程返回線程池。但是網絡連接資源仍然「消耗殆盡」,因爲它一直保持打開狀態直到響應被髮回。異步Servlet實際上就像擁有第二個servlet線程池,您可以選擇性地將其工作。http://goo.gl/dbmpc –