我的应用程序中有一个
Scheduler
对象,我使用 Job
方法向其添加 scheduleJob
。
在我的代码中,我立即安排
Job
Trigger
:
TriggerBuilder.newTrigger().startNow().build();
我的问题是如何知道哪些
Job
被安排到我的Scheduler
中?只有一个getCurrentlyExecutingJobs
的方法目前看来不太靠谱。
下面的代码列出了与调度程序关联的所有 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);
}
}
另一种不使用
JobKey
即可列出所有
for
的方法
List<JobKey> jobKeyList = (List<JobKey>) scheduler.getJobKeys(GroupMatcher.anyGroup());