Web 应用程序上的 Quartz - 调度程序不会停止
我有一个在 weblogic 上运行的 web 应用程序,它在 ServletContextListener 上运行调度程序。
问题是调度程序无限期地运行,所以即使我停止 web 应用程序或重新部署调度程序也会继续运行。
我应该能够在 contextDestroyed 上停止调度程序,但我没有实例。我见过几个网站推荐这种解决问题的方法,但它们都有运行指定次数的调度程序。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
Quartz 附带了一个专门用于启动和启动的 servlet。在应用程序启动和关闭时停止调度程序只需将以下内容添加到您的 web.xml 中:
Quartz comes with a servlet specifically for starting & stopping the scheduler on application startup and shutdown simply add the following to your web.xml:
如果您想关闭而不等待正在执行的作业完成,请使用:
检查此页面< /a> 了解更多信息。
If you want to shutdown without waiting for the executing jobs to finish use:
Check this page for more info.
应用程序关闭时,您必须调用
有时您必须执行 Thread.sleep(1000);让它也正常关闭。
在 ContextLoad 侦听器或您拥有的其他关闭挂钩中执行此操作。
获取实例取决于您如何设置quartz,但可以像这样获取默认调度程序:
请参阅http://www.quartz-scheduler.org/docs/1.x/quick_start_guide.html 了解更多信息
Upon application shutdown you must call
Sometimes you have to do a Thread.sleep(1000); to let it shut down properly aswell.
Do this in a ContextLoad listener or other shutdown hook that you have.
To get the instance depends on how you have set up quartz, but the default scheduler can be obtained like this:
See http://www.quartz-scheduler.org/docs/1.x/quick_start_guide.html for more information