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

Quartz调度程序触发器不尊重优先级

闾丘玮
2023-03-14

我希望它们按以下顺序运行:job3、job4、job1、job2

在20次运行中,只有大约3次我得到了预期的结果。对于其他任务,要运行的第一个任务几乎是随机的,其余任务的顺序是正确的。一次运行如下:job1,job3,job4,job2或job4,job3,job1,job2

我是不是没有正确理解Quartz中的优先级是如何工作的?我找不到到底发生了什么。

共有1个答案

耿星雨
2023-03-14

这里的问题是,Quartz不能确保当您以不同的优先级同时调度多个作业时,您将按照您想要的顺序得到它们,除非您的工作线程已经忙了。否则,如果工作线程不忙,它将选择您可以在纳秒范围内调度的具有最高优先级的作业。

对于我的情况,线程并不忙,所以当我调度所有作业时,quartz有时间拾取并处理我调度的第一个作业。当线程忙于处理Job1时,其余的作业都有时间进行调度。

你们可以跟着消息“批量采购...”以便你们自己找出问题所在。

我的解决方案是对作业列表使用方法schedule。

 类似资料:
  • 我想知道是否有一个函数/方法来创建随机时间触发的作业。我的意思是,如果我设置一个cron计划在每周一上午10:00触发,并给出一个时间间隔,比方说30分钟,触发器将总是在9:30到10:30之间关闭。例如,这是cron调度表。

  • 我有以下案文: 在第一步中,下面的映射是tacking place: JAPE规则: 我不明白为什么-rule是匹配的,而不是。

  • 需要石英调度器方面的帮助。这就是我到目前为止所做的。 Spring定义 类实现 但我犯了这样的错误 组织。springframework。豆。工厂BeanCreationException:创建名为“org”的bean时出错。springframework。行程安排。石英在URL中定义了SchedulerFactoryBean#0[bundle://343.0:0/META-INF/spring/

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

  • 在优先级调度中,为每个进程分配一个优先级编号。 在一些系统中,数字越小,优先级越高。 而在其他情况下,数字越高,优先级越高。 在可用进程中具有较高优先级的进程由CPU提供。 存在两种类型的优先级调度算法。 一种是抢占式优先级调度,而另一种是非抢先式优先级调度。 分配给每个过程的优先级编号可能会也可能不会变化。 如果优先级号码在整个过程中没有改变,它被称为静态优先级,而如果它保持定期改变自己,它被称