无论我的服务器如何,如何继续运行我的调度程序

时间:2014-06-10 11:47:25

标签: java scheduler

在我的项目中,我有一个调度程序正在运行,当我在实时服务器上部署我的项目时,我必须停止服务器部署我的更改,然后重新启动它。 在整个过程中我的调度程序重置。我想在任何情况下运行我的调度程序。 这可能吗 ?? 如是。怎么样?

3 个答案:

答案 0 :(得分:1)

使用像quartz这样的cron调度程序,它独立于进程运行时触发(例如,使用默认的cron触发器语法,而不是每隔X秒激活一次)。这样,即使重新启动进程,调用间隔也将保持不变。

这也将为您提供持久性cron作业等功能。 Spring应该使用org.springframework.scheduling.quartz.SchedulerFactoryBean的dataSource属性来支持这个开箱即用。

答案 1 :(得分:1)

我不太确定有问题的服务器环境类型。但我认为你的可能是某些应用程序服务器或Web服务器。在这种情况下,计划作业可以创建批处理作业并通过Linux / Unix上的cron Tab进行计划(假设您的应用程序在Unix / Linux机器上运行)。

答案 2 :(得分:1)

如果您在基于Windows的服务器上运行,则可以使用Revalee开源项目来解决此问题。 Revalee作为Windows服务运行,将所有计划任务存储在持久数据存储中(特别是可扩展存储引擎(ESE)[又名.JET蓝]),这样即使整个服务器需要,也不会丢失状态重新启动。当您的任务到期时,Revalee会调用您的应用程序,以便触发您需要运行的任何任务。

相关问题