使用执行器/关机与 SIGTERM 优雅地终止 Spring 应用程序有什么区别?



我注意到 SIGTERM-ing 我的应用程序(通过 kill(和运行执行器/关闭之间的行为存在差异,但我很难理解它们为什么不同。

我发现了我的问题。在我的@PreDestroy方法中,我没有清理某些线程,这些线程由于 Spring 未由 Spring 管理而随着 Spring 关闭而保持活动状态。

所以不同之处在于,Spring 的执行器关闭不会清理不受 Spring 管理的线程,而 SIGTERM 会。

最新更新