当前位置: 首页 > 知识库问答 >
问题:

对同一组quartz表使用相同的quartz实例(集群和非集群)

张星洲
2023-03-14

我有一个要求,其中我的一些quartz作业应该以集群方式运行(三个节点中只有一个应该运行该作业),而一些作业应该以非集群方式运行(三个节点中的所有三个都应该运行该作业)。

  1. 2个quartz.properties一个用于群集实例,一个用于非群集实例。
  2. 群集的两个实例都将在应用程序启动时启动。
  3. 因此,在非群集排定程序下配置的作业将以排定程序名称NON_CLST_SCHE保存在jobs表中,在同一表中以不同的排定程序名称保存。

这是使用石英的正确方法吗?我们是否面临数据腐败问题?

根据quartz Documentation@http://www.quartz-scheduler.org/Documentation/quartz-2.x/tutorials/tutorial-lesson-11.html,它指出,绝不要针对运行任何其他实例的同一组表启动非集群实例。您可能会得到严重的数据损坏,并且肯定会经历不稳定的行为。

任何帮助都非常感谢,提前感谢!

共有1个答案

夏侯衡
2023-03-14

我认为您的方法是好的(假设所有访问相同数据库的非集群调度器都有一个唯一的调度器名称)。

在我看来,该警告指的是在同一个数据库上运行多个具有相同调度程序名称的非集群实例的情况。例如。调度程序只能从JDBC-Jobstore中看到作业、触发器等,如果该作业的关联调度程序名(触发器,...)与计划程序的匹配。

 类似资料:
  • 问题内容: 我希望在我的应用程序中使用石英调度程序,因为我有一个集群环境,并且想保证每小时只能运行一个工作实例。我的问题是…我是否必须使用JDBC作业存储库或某种形式的作业数据“外部”存储库,以确保集群中只有一个实例在任何给定的时间运行该作业,或者对Quartz来说,还有更多的魔力我知道吗? 问题答案: 是的,您需要使用JDBC- JobStore或TerracottaJobStore来启用节点相

  • 我的we应用程序A将扫描业务相关的数据库表,并在启动期间和之后每10分钟安排石英作业。如果我在两个不同的tomcat实例上部署两个A应用程序,那么将有两组通过Quartz调度的重复作业。 我该如何解决这个问题?我是否需要将调度作业的部分代码提取到单独的应用程序中,并确保只部署了1个实例,从而只调度了1组作业?但是问题变成了--如果这个实例失败了怎么办?在这种情况下,如何实现故障转移?

  • 详细说明请查阅插件的README nutz-integration-quartz Git@OSC镜像 依赖 quartz 2.x 依赖名为conf类型为PropertiesProxy的ioc bean 基本用法 本插件通过@IocBy加载 @IocBy(args = { "*js","ioc/", "*anno", "net.wendal.nutzbo

  • 问题内容: 我对SQL(Server2008)的较低层次的了解是有限的,现在我们的DBA对此提出了挑战。让我解释一下这种情况:(我已经提到一些明显的陈述,希望我是对的,但是如果您发现有问题,请告诉我)。 我们有一张桌子,上面放着人们的“法院命令”。创建表(名称:CourtOrder)时,我的创建方式如下: 然后,我将非聚集索引应用于主键(以提高效率)。我的理由是,这是一个唯一字段(主键),应该像我