gpt4 book ai didi

java - Tomcat 6 中的 Quartz 调度程序,线程不会停止

转载 作者:搜寻专家 更新时间:2023-10-30 20:01:24 25 4
gpt4 key购买 nike

对于我的网络应用程序,我使用 Quartz。当我部署应用程序时一切正常。当我取消部署应用程序时,Quartz 线程没有被破坏。

日志是:

INFO: Stopping service Catalina

SEVERE: The web application[/example] appears to have started athread named[DefaultQuartzScheduler_Worker-1] buthas failed to stop it. This is verylikely to create a memory leak. Jul12, 2010 6:30:40 PMorg.apache.catalina.loader.WebappClassLoaderclearReferencesThreads

谁能告诉我如何强制销毁那些线程?

谢谢,

托马索

最佳答案

我发现对我来说问题是 quartz 正在关闭,但 webapp 没有等到 quartz 完成就关闭了,所以 Tomcat 决定让线程继续运行并提示。

所以我这样管理我的调度程序:

Scheduler scheduler = StdSchedulerFactory.getDefaultScheduler();
...do some stuff with the scheduler...
scheduler.shutdown(true);

注意 shutdown 的 boolean 参数是重要的部分。如果您删除 true 以调用无参数版本或将其设置为 false,您的 webapp 将不会等待 quartz 关闭后再关闭。

TL;DR:调用 scheduler.shutdown(true) 让您的 webapp 等待 quartz 完成。

关于java - Tomcat 6 中的 Quartz 调度程序,线程不会停止,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3230324/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com