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

如何调度在不同调度程序实例中创建的作业

沃侯林
2023-03-14

我正在使用spring-boot-starter-quartz2.2.1.release来调度Quartz作业,并且我已经在两个节点上部署了我的代码。而quartz.properties是这样的:

org.quartz.scheduler.instanceName: machine1
org.quartz.scheduler.instanceId = AUTO
org.quartz.scheduler.instanceName: machine2
org.quartz.scheduler.instanceId = AUTO

如果我发出了查询所有作业的请求,那么该请求可能会被发送到node1,并且只显示node1的作业。但我想同时显示node1和Node2的作业。

如果我发出了更新scanJobbyMachine1的请求,并且它可能被发送到Node2。和更新,因为node2只有instanceName为machine2的属性文件。

以下是我的计划:

localhost:8090/machine0/updateJob
localhost:8090/machine1/updateJob

计划C:用两个属性文件编写另一个后端。只是为了调度这些作业,而不执行这些作业(我不知道这是否可行),并将其部署在这两个节点上。

我真的不想像计划C那样编写和部署另一个后端,或者像计划B那样编写重复的API,有什么好主意吗?

共有1个答案

仲璞瑜
2023-03-14

您的问题是群集问题:)

也许您可以动态配置您的作业注册:当node1启动时,它将在集群上单独运行,并且只在这个集群上运行作业。当node2启动时,可以调用这两个节点。

 类似资料:
  • 我希望使用Quartz调度器,以便应用程序的服务器部分使用调度器创建一个作业并将其存储在JDBCStore中,而UI部分(前端)使用调度器的另一个实例(指向相同的数据库模式)为该作业添加触发器。我以为UI知道作业和组的名称就足够了,因为添加触发器类似于: 不幸的是,这会为job类抛出异常。如有任何帮助,我们将不胜感激。谢谢你。

  • 但没有。在应用程序中创建的dispatcher线程使我在优化dispatcher配置时束手无策。每次重新启动应用程序时,我都看到创建了不同数量的dispatcher线程(每次启动应用程序后,我都通过线程转储检查这一点)。 甚至线程数也不等于我在Parallelism-min中定义的线程数。由于这个低线程数,我的应用程序的处理速度非常慢。一查号码。通过下面的代码: GetRuntime().Avai

  • 问题内容: 通过查看调度程序源代码(2.6.34,kernel / sched.c),我可以看到如何使用“可插拔”调度程序,并且相信可以理解要实现的接口。我还不了解的是如何将我的代码构建到内核中。至少,指向其他站点的指针将不胜感激。 现在,我在内核源代码树中为SCHED_FIFO,SCHED_RR和SCHED_NORMAL进行了搜索,因此,我真的在寻找一种更有洞察力的方式来查看它:- 编辑:作为某

  • 我正在做一个项目,我们计划使用WLP (WebSphere liberty)代替传统的WAS。 代码使用 WAS 调度程序来调度活动。 liberty 是否也具有与 WAS 中存在的相同级别的调度程序支持/功能? 如何将调度程序任务从webphere迁移到自由?

  • 我是hadoop新手,我写了一些作业并将它们导出为jar文件。我可以使用hadoop jar命令运行它们,我想每一小时运行一次这些作业。我该怎么做?提前谢谢。

  • 在RxJava中,有5种不同的调度程序可供选择: > immediate():创建并返回在当前线程上立即执行工作的调度程序。 trampoline():创建并返回一个调度程序,该调度程序将当前线程上的工作排队,以便在当前工作完成后执行。 newThread():创建并返回一个调度程序,该调度程序为每个工作单元创建一个新线程。 计算():创建并返回一个用于计算工作的调度程序。这可以用于事件循环、处理