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

Quartz调度程序:在每个集群节点上触发一些作业,而有些作业每个集群只触发一次

乐华晖
2023-03-14

我有一些用@NotConcurrent注释的作业,它们每个集群运行一次(即,只在一个节点中,只在一个线程中)。

现在我需要在集群的每个节点上运行一个作业。我删除了@NotConcurrent注释,但它只在一台机器上的每个线程上运行。它不会在其他节点上被激发。

我应该用什么来注释这份工作?

共有1个答案

乐正光誉
2023-03-14

AFAIK Quartz作业总是在Quartz选择的单个节点上执行。@nonconcurrent注释仅防止Quartz在特定节点上并发执行相同的作业。

换句话说,您不能让Quartz同时在多个节点上执行一个作业。它总是选择一个节点在其上执行作业。

要实现您描述的内容,您可能需要多个作业(使用相同的作业类,并且没有关联的触发器)。然后您将需要实现某种orchestrator作业,该作业将远程连接(例如通过JMX或RMI)到单个节点并手动触发作业。

 类似资料:
  • 问题内容: 我在集群环境中将Quartz Scheduler用作Spring bean。 我有一些用@NotConcurrent注释的作业,它们每个集群运行一次(即,仅在一个节点中,仅在一个线程中)。 现在,我需要在集群的每个节点上运行一项作业。我删除了@NotConcurrent批注,但是它仅在一台计算机上的每个线程上运行。它不会在其他节点上触发。 我应该用什么来注释作业? 示例:带注释的Job

  • 我有一个应用程序,使用Quartz作为作业调度程序。有两种情况 null > 应用程序的两个实例都将启动并连接到数据库。两者都报告它们已成功群集并连接到数据库。 当我根据场景1调度作业时,在作业执行时,只有一个应用程序执行作业。 场景2,即每10秒执行一次的cron作业,由两个应用程序同时执行。 任何帮助或指导将非常感谢!

  • 我想知道对于quartz是否有一个简单的解决方案/hack来触发一个在集群中的每个节点上都被删除的作业。 我的情况:我的应用程序正在缓存一些东西,并且运行在一个没有分布式缓存的集群中。现在,我需要刷新作业触发的所有节点上的缓存。

  • 不幸的是,我有一个工作是对RAM中的数据进行操作,但没有同步设置。我能看到的最简单的解决方案是让一个作业在所有节点上运行而不进行协调,就像使用一样。 是否有方法将作业配置为在LocalDataSourceJobStore下的所有节点上运行? 精确的定时并不重要,但作业必须每30分钟在每个节点上运行一次

  • 我有一个使用Quartz1.6.6的Java应用程序。它被部署到Weblogic上,Weblogic的体系结构包括两个应用服务器。 令人困惑的是,我有另一个Java应用程序,其中包含了Quartz调度,它似乎运行得非常愉快。另一个应用程序有一个相同的机制,每分钟触发一个触发器,从日志中我可以看到该作业每60秒只运行一次。 昨天下午作业已运行的次数示例: 15:10:46,984 15:10:49,

  • 我是第一次使用石英调度器。我没有什么疑问,希望有人能帮我一把。多谢! 多个职务组,一个组内有多个具有唯一名称的职务 一个职务组可以与一个触发器关联,以便该组下的所有职务将同时被激发 我觉得这个组织在调度器软件上是相当正常的。但是,我只找到了使用多个触发器注册相同作业的引用。即使这样,我还是认为用相同的触发器注册多个作业在逻辑上是可以实现的。 > 是否可以根据触发器的名称实现从调度程序获取触发器A?