Angular 4應用程序向已部署在Websphere 8 Servlet容器中的Java spring MVC應用程序發送記錄列表。該列表然後插入到臨時表中。批量插入後,會進行過程調用以執行一些計算並返回結果。根據插入臨時表的列表大小,可能需要3000毫秒(N〜500),6000毫秒(N〜1000),50,000毫秒(N> 2000)之間的任意值。爲多個線程提供單個HTTP請求
我的輔助工具是創建數據塊並同時將它們發送到數據庫進行處理。線程(期貨)返回結果後,我會彙總它們並返回給客戶端。總而言之,我會將一個同步調用拆分爲多個異步進程(同時執行),並通過啓動HTTP調用的同一線程返回客戶端 - 進入我的控制器。
一切都會好的,我不會問這個問題,如果一個更有經驗的同事不會強烈反對這種方法。他的推理是使用這種方法由於線程中斷/超時/信號量等原因容易出現異常。您好,多線程應該避免在一個Web容器內,因爲它可以使Servlet容器崩潰,以防線程運行。 他建議我們應該讓瀏覽器發送多個AJAX請求並聚合/呈現數據塊。
你能幫我理解哪種方法更好,爲什麼?
聽起來更簡單,發送並行請求,然後編寫一堆服務器端代碼,但不是因爲將工作從servlet卸載到多個線程中存在任何固有問題。 – covener
在這種情況下,客戶端不僅要處理呈現數據,還要聚合。不會在客戶端增加更多的開銷嗎? 我已經編寫了服務器端代碼(未經測試),但準備拋棄它,如果不是這樣做的話...... – gumenimeda
我不認爲這兩種方法都是客觀對錯或錯誤 – covener