[英]Quartz on a webapp - scheduler does not stop
我在weblogic上运行了一个webapp,它在ServletContextListener上运行一个Scheduler。
问题是调度程序无限期地运行,所以即使我停止webapp或重新部署调度程序仍在运行。
我应该能够在contextDestroyed上停止调度程序,但我没有实例。 我已经看到几个网站推荐这个问题的方法,但他们都有sheduler运行定义的次数。
Quartz附带一个专门用于在应用程序启动和关闭时启动和停止调度程序的servlet,只需将以下内容添加到web.xml:
<servlet>
<servlet-name>QuartzInitializer</servlet-name>
<servlet-class>org.quartz.ee.servlet.QuartzInitializerServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
在这里你有: Web应用程序中的Quartz Scheduler
申请关闭后,您必须致电
scheduler.shutdown();
有时你必须做一个Thread.sleep(1000); 让它正常关闭。
在ContextLoad侦听器或您拥有的其他关闭挂钩中执行此操作。
获取实例取决于您如何设置quartz,但可以像这样获得默认调度程序:
Scheduler scheduler = StdSchedulerFactory.getDefaultScheduler();
有关更多信息,请参见http://www.quartz-scheduler.org/docs/1.x/quick_start_guide.html
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.