Mira
点个关注吧~
·04-11 23:11
AI 零代码应用生成平台 bug 反馈 类: Web 截图工具类 项目中销毁webDriver时,使用了@PreDestroy注解, @PreDestroy是 Spring 管理 Bean 生命周期用的,直接写在静态工具类的非静态方法上是不会生效的,这会导致应用关闭时遗留僵尸 Chrome 进程。 所以需要修改实现方式。正确的实现方式是,在静态代码块中使用Java原生的JVM关闭钩子。代码在文末。 与AI的对话,可参考: https://docs.google.com/document/d/1kcWj31vCGYcT98G2_0Fz_jKuLabO9HpNl0XA7BwP5zg/edit?usp=sharing 代码: static { webDriver = initChromeDriver(DEFAULT_WIDTH, DEFAULT_HEIGHT); // 注册 JVM 关闭钩子 Runtime.getRuntime().addShutdownHook(new Thread(() -> { log.info("JVM 正在关闭,准备清理 Chrome 进程..."); if (webDriver != null) { try { webDriver.quit(); // 这样才能真正在应用停止时杀死 Chrome 进程 log.info("Chrome 进程清理完毕"); } catch (Exception e) { log.error("清理 Chrome 进程失败", e); } } })); } https://docs.google.com/document/d/1kcWj31vCGYcT98G2_0Fz_jKuLabO9HpNl0XA7BwP5zg/edit?usp=sharing
0个评论
点击登录,快来和大家讨论吧~
表情
图片
暂无评论
下载 APP