我在我的应用程序中使用ManagedExecutorService,特别是使用Quartz。其观察者线程在执行程序服务中运行。
在应用程序关闭时,我在@PreDestroy方法中停止Quartz并且它应该完成它的观察者线程 - 这就是它的意图以及它在我切换到托管执行程序之前的状态。
现在的问题是,当我关闭服务器时,ManagedExecutorService会在调用@PreDestroy之前关闭。
有没有办法可以获得关闭事件的通知?我可以声明对“ManagedExecutors子系统”的某种依赖性,以便在“CDI子系统”完成时清理它吗?
那是对的,我应该在类中声明@Resource ManagedExecutorService
,它依赖于托管执行程序来阻止它的早期关闭。