设为首页 加入收藏

TOP

你们的优雅停机真的优雅吗?(四)
2023-08-26 21:11:07 】 浏览:52
Tags:
t;, waitTime - i++); } catch (Throwable e) { logger.error("异常", e); } } } catch (Throwable e) { logger.error("异常", e); } } private void destroyJsfProvider() { logger.info("关闭所有JSF生产者"); if (null != applicationContext) { String[] providerBeanNames = applicationContext.getBeanNamesForType(ProviderBean.class); for (String name : providerBeanNames) { try { logger.info("尝试关闭JSF生产者" + name); ProviderBean bean=(ProviderBean)applicationContext.getBean(name); bean.destroy(); logger.info("关闭JSF生产者" + name + "成功"); } catch (BeanCreationNotAllowedException re){ logger.error("JSF生产者" + name + "未初始化,忽略"); } catch (Exception e) { logger.error("关闭JSF生产者失败", e); } } } logger.info("所有JSF生产者已关闭"); } @Override public void setApplicationContext(ApplicationContext applicationContext) throws BeansException { this.applicationContext = applicationContext; ((AbstractApplicationContext)applicationContext).registerShutdownHook(); } }

? absfactory-base-custcenter应用优雅停机出现日志无法打印问题,排查定位发现问题如下:通过本地debug发现优雅停机先销毁logback日志打印线程,导致实际倒计时的日志无法打印。

    <!--	fix-程序关停时,logback先销毁的问题-->
    <context-param>
        <param-name>logbackDisableServletContainerInitializer</param-name>
        <param-value>true</param-value>
    </context-param>


9.总结

现有的springboot内置Tomcat能通过配置参数达到优雅停机的效果。但是因为业务系统中的代码中存在多种技术交叉应用,针对Tomcat和springmvc不同的应用确实需要花费时间研究底层原理来编写相关类实现同springboot配置参数托管的效果。

作者:京东科技 宋慧超

来源:京东云开发者社区

首页 上一页 1 2 3 4 5 下一页 尾页 4/5/5
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇JDK 17 营销初体验 —— 亚毫秒停.. 下一篇JaCoCo助您毁灭线上僵尸代码

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目