繁体   English   中英

在webapp上的Quartz - 调度程序不会停止

[英]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>

如果要在不等待执行作业完成使用的情况下关闭:

scheduler.shutdown(false);

查看此页面了解更多信息。

申请关闭后,您必须致电

        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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM