如果主线程进入睡眠状态,例如30秒,则从Spring @Component@PostConstruct开始。

在两者之间,通过运行kill <pid>触发SIGTERM

但是在这种情况下,@PreDestroyEventListener上的ContextClosedEvent都不会触发。

例如,当Bean从PostConstruct睡眠并且将SIGTERM发送到spring boot应用程序时,我们可以监听哪个核心Spring事件?

最佳答案

根据评论之一,问题是@PostConstruct中的逻辑过多


所以您的问题实际上是您在@PostConstruct中执行过多的工作

换句话说,由于Spring仍在初始化自身,因此它甚至可能还没有进入初始化过程,即如果注册了shutdown钩子,那么它甚至永远也不会收到有关SIGTERM的通知。

10-07 15:43