0
我正在嘗試將遺留應用程序遷移到jee 7.作爲部署的一部分,我們在啓動servelt時初始化少量高速緩存。 Inturn這些緩存被其他類使用。ManagedThreadFactory不會立即啓動線程
傳統實現會按順序初始化它們。我正在嘗試並行初始化它們以節省部署時間。
我正在使用ManagedThreadFactory.newThread(callable).start();
問題是,線程正在部署後或開始部署時開始初始化。這會導致其他類中的NPE取決於高速緩存。
有沒有什麼辦法可以並行初始化緩存,一旦緩存初始化,剩下的部署應該繼續。
謝謝。我仍然想知道爲什麼ManagedThreadFactory沒有立即啓動線程。另外,我們將在稍後使用啓動單例ejb替換啓動Servlet。所以我不認爲ServletContextListener是我的選擇。 –
我不知道你爲什麼認爲這些線索並未開始 - 聽起來像是這樣,但其他事情也開始了。由於在啓動時運行的servlet是關於應用服務器的最後一件事情,所以難怪這發生了。啓動EJB可能工作,但最終需要確保在其他任務啓動之前完成它 - 您可能需要某種鎖定機制來防止在準備好之前使用緩存。 – stdunbar