通过将以下内容添加到属性文件中,我创建了一个具有优雅关闭功能的简单spring引导应用程序:
server.shutdown=graceful
spring.lifecycle.timeout-per-shutdown-phase=1m它如预期的那样工作。
但是,在运行任务完成之前超时到期时,我想记录信息。
有办法这样做吗?
发布于 2022-06-13 08:35:17
查看使用DefaultLifecycleProcessor.LifecycleGroup的spring.lifecycle.timeout-per-shutdown-phase,如果Spring未能在指定的时间内关闭bean,那么它将记录它:
if (latch.getCount() > 0 && !countDownBeanNames.isEmpty() && logger.isInfoEnabled()) {
logger.info("Failed to shut down " + countDownBeanNames.size() + " bean" +
(countDownBeanNames.size() > 1 ? "s" : "") + " with phase value " +
this.phase + " within timeout of " + this.timeout + "ms: " + countDownBeanNames);
}如果您想要定制的实现,您可以查看实现自己的LifecycleProcessor。
https://stackoverflow.com/questions/72592932
复制相似问题