Web 应用程序上的 Quartz - 调度程序不会停止

发布于 2024-11-16 14:41:28 字数 209 浏览 3 评论 0 原文

我有一个在 weblogic 上运行的 web 应用程序,它在 ServletContextListener 上运行调度程序。

问题是调度程序无限期地运行,所以即使我停止 web 应用程序或重新部署调度程序也会继续运行。

我应该能够在 contextDestroyed 上停止调度程序,但我没有实例。我见过几个网站推荐这种解决问题的方法,但它们都有运行指定次数的调度程序。

I have a webapp running on weblogic that runs a Scheduler on a ServletContextListener.

The problem is the scheduler runs indefinitely, so even if i stop the webapp or redeploy the scheduler keeps running.

I should be able to stop the scheduler on contextDestroyed, but I don't have the instance. I've seen a couple of websites recommending this aproach to the problem, but they all have shedulers running a defined number of times.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

魄砕の薆 2024-11-23 14:41:28

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>

Quartz comes with a servlet specifically for starting & stopping the scheduler on application startup and shutdown simply add the following to your 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>
瞄了个咪的 2024-11-23 14:41:28

如果您想关闭而不等待正在执行的作业完成,请使用:

scheduler.shutdown(false);

检查此页面< /a> 了解更多信息。

If you want to shutdown without waiting for the executing jobs to finish use:

scheduler.shutdown(false);

Check this page for more info.

孤独陪着我 2024-11-23 14:41:28

应用程序关闭时,您必须调用

        scheduler.shutdown();

有时您必须执行 Thread.sleep(1000);让它也正常关闭。

在 ContextLoad 侦听器或您拥有的其他关闭挂钩中执行此操作。

获取实例取决于您如何设置quartz,但可以像这样获取默认调度程序:

        Scheduler scheduler = StdSchedulerFactory.getDefaultScheduler();

请参阅http://www.quartz-scheduler.org/docs/1.x/quick_start_guide.html 了解更多信息

Upon application shutdown you must call

        scheduler.shutdown();

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:

        Scheduler scheduler = StdSchedulerFactory.getDefaultScheduler();

See http://www.quartz-scheduler.org/docs/1.x/quick_start_guide.html for more information

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文