1
我注意到我的開發環境(Netbeans和Glassfish)由ManagedScheduledExecutorService
創建的計劃任務在服務器重啓後不能存活。ManagedScheduledExecutorService任務執行服務器重啓或崩潰嗎?
我做錯了什麼,或者這是爲了這樣工作嗎?
我注意到我的開發環境(Netbeans和Glassfish)由ManagedScheduledExecutorService
創建的計劃任務在服務器重啓後不能存活。ManagedScheduledExecutorService任務執行服務器重啓或崩潰嗎?
我做錯了什麼,或者這是爲了這樣工作嗎?
如果由於服務器重新啓動/崩潰而導致JVM關閉,那麼任務也將消失。這就是它應該如何工作的。 您需要找到永久存儲信息並在啓動時重新創建任務的方法。
另一種方法是使用定時服務而不是執行服務,但在這種情況下,我不確定是否有可能啓動多個工作線程。我讀過定時服務任務都安排在一個線程上。或者是否有可能爲定時服務提供線程池? – Jojo
這將是一個不同的問題。那些服務器重啓後也會消失。 –
對不起,如果我必須糾正你,那是不正確的。他們在重新啓動後仍然存在,但不能重新部署。來自Java EE教程:'定時器默認是持久的。如果服務器關閉或崩潰,持久性定時器將被保存並在服務器重新啓動時再次變爲活動狀態。如果持久計時器在服務器關閉時到期,那麼當服務器重新啓動時,容器將調用@Timeout方法。# – Jojo