如果主线程进入睡眠状态,例如30秒,则从Spring @Component
,@PostConstruct
开始。
在两者之间,通过运行kill <pid>
触发SIGTERM
但是在这种情况下,@PreDestroy
和EventListener
上的ContextClosedEvent
都不会触发。
例如,当Bean从PostConstruct
睡眠并且将SIGTERM发送到spring boot应用程序时,我们可以监听哪个核心Spring事件?
最佳答案
根据评论之一,问题是@PostConstruct
中的逻辑过多
所以您的问题实际上是您在@PostConstruct中执行过多的工作
换句话说,由于Spring仍在初始化自身,因此它甚至可能还没有进入初始化过程,即如果注册了shutdown钩子,那么它甚至永远也不会收到有关SIGTERM的通知。