如何从Quartz调度器中查询调度的作业?

问题描述 投票:0回答:2

我的应用程序中有一个

Scheduler
对象,我使用
Job
方法向其添加
scheduleJob

在我的代码中,我立即安排

Job
Trigger
:

TriggerBuilder.newTrigger().startNow().build();

我的问题是如何知道哪些

Job
被安排到我的
Scheduler
中?只有一个
getCurrentlyExecutingJobs
的方法目前看来不太靠谱。

java quartz-scheduler
2个回答
17
投票

下面的代码列出了与调度程序关联的所有 Quartz 作业(Quartz 2.x.x)

for (String groupName : scheduler.getJobGroupNames()) {

 for (JobKey jobKey : scheduler.getJobKeys(GroupMatcher.jobGroupEquals(groupName))) {

  String jobName = jobKey.getName();
  String jobGroup = jobKey.getGroup();

  //get job's trigger
  List<Trigger> triggers = (List<Trigger>) scheduler.getTriggersOfJob(jobKey);
  Date nextFireTime = triggers.get(0).getNextFireTime(); 

    System.out.println("[jobName] : " + jobName + " [groupName] : "
        + jobGroup + " - " + nextFireTime);

  }

}

0
投票

另一种不使用

JobKey
 即可列出所有 
for

的方法
List<JobKey> jobKeyList = (List<JobKey>) scheduler.getJobKeys(GroupMatcher.anyGroup());
© www.soinside.com 2019 - 2024. All rights reserved.