Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/373.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Quartz作业调度器如何按精确顺序启动作业_Java_Cron_Quartz Scheduler - Fatal编程技术网

Java Quartz作业调度器如何按精确顺序启动作业

Java Quartz作业调度器如何按精确顺序启动作业,java,cron,quartz-scheduler,Java,Cron,Quartz Scheduler,我有一些工作需要通过三个触发器触发(每个触发器触发四个工作) 我希望有一个指定的工作总是先开火,其余的可以随意开火。 我应该实现不同的触发器吗?有没有办法处理优先事项?我已经在一个线程中启动了它们 org.quartz.threadPool.class = org.quartz.simpl.SimpleThreadPool org.quartz.threadPool.threadCount = 1 及 第一个作业的优先级与其他作业的优先级不同,但无论如何它都是以随机顺序运行的。有时,当您有许多

我有一些工作需要通过三个触发器触发(每个触发器触发四个工作) 我希望有一个指定的工作总是先开火,其余的可以随意开火。 我应该实现不同的触发器吗?有没有办法处理优先事项?我已经在一个线程中启动了它们

org.quartz.threadPool.class = org.quartz.simpl.SimpleThreadPool
org.quartz.threadPool.threadCount = 1


第一个作业的优先级与其他作业的优先级不同,但无论如何它都是以随机顺序运行的。有时,当您有许多触发器(或Quartz线程池中的工作线程很少)时,Quartz可能没有足够的资源来立即触发计划同时触发的所有触发器。在这种情况下,您可能希望控制哪些触发器在可用的Quartz工作线程中第一次出现裂纹。为此,可以设置触发器的优先级属性。如果同时触发N个触发器,但当前只有Z个工作线程可用,那么将首先执行优先级最高的前Z个触发器。如果未设置触发器的优先级,则它将使用默认优先级5。优先级允许使用任何整数值,无论是正值还是负值。

我误解了Quartz中的优先级。它是用于触发器的,而不是用于作业。 要按指定顺序解雇作业,我们需要使用

JobChainingJobListener chain;
chain.addJobChainLink(dailyJob.getKey(), jobDetail.getKey());
在我的示例中,jobDetail是每月、每季度和每年。
谢谢你的帮助。

谢谢你的回答。这些触发器在不同的时间,我的意思是在凌晨1:01、凌晨2:01和凌晨3:01。所以它们不会同时交叉。每个触发器中只有作业顺序是重要的,因此,您的意思是,在示例中的这3个触发器中,您希望3:01需要首先触发,而不管其他计划是什么?不,不,每个触发器中有4个作业。命名为“日、年、季、月”。我想每天都跑第一。
JobChainingJobListener chain;
chain.addJobChainLink(dailyJob.getKey(), jobDetail.getKey());