2011-05-10 195 views
5

我们使用Cron4j java调度程序来调度每晚执行的作业。现在,当在客户站点的集群(2个节点)上部署相同的Web应用程序(Tomcat)时,作业将运行两次。有什么办法可以避免这个问题吗?计划作业在群集上执行两次

+1

您是否考虑过将您的调度程序独立运行而不是Tomcat集群的一部分? – Sean 2011-05-10 13:37:33

回答

2

我相信这样做的唯一方法是使用一些外部共享状态,例如在数据库中提供一些锁定。

-1

解决这个问题的方法之一就是让webapp接受一个参数,例如runCronjobs。您可以将相关条目放在web.xml或其他某个配置文件中。

所以一个webapp将这个值设置为true,其他部署将它设置为false