2017-05-03 47 views
0

我在我的應用中使用了ManagedExecutorService,特別是使用Quartz。它的觀察者線程在執行者服務中運行。Wildfly:接收關閉事件以防止ManagedExecutorService的早期關閉

在應用關閉時,我在@PreDestroy方法中停止了Quartz,並且它應該完成它的觀察器線程 - 這就是它的本意,以及它如何被切換到託管執行程序。

現在的問題是,當我關閉服務器時,ManagedExecutorService在@PreDestroy被調用之前關閉。

有沒有辦法讓我得到關機事件的通知?我可以聲明對「ManagedExecutors子系統」的某種依賴關係,以便在「CDI子系統」完成時清理它嗎?

+2

爲什麼在JEE環境中使用Quartz? A @ Schedule Singleton將允許PreDestroy,並且您可能會使代碼更加簡單。 – stdunbar

+0

'@ PreDestroy'方法有什麼樣的bean? –

+0

@stdunbar也許,它更敏捷,更有特色。在這裏已經有一段時間了,並不是我把它帶入應用程序。 – Valya

回答

0

這是對的,我應該聲明@Resource ManagedExecutorService這個類依賴於託管執行程序來防止其過早關閉。