有什么办法由作业名

问题描述:

现在我正在寻找的功能由Quartz库作业名称获取作业键来获得石英作业键。有什么办法由作业名

我看到Scheduler有方法使用GroupMatcher<JobKey>Quartz具有NameMatcher它可以是用户以同样的方式GroupMatcher

Set<JobKey> getJobKeys(NameMatcher<JobKey> matcher) throws SchedulerException; 

你知道是这个功能已经存在于石英图书馆度日组名作业键?

根据作业名称使用NameMatcher获取JobKey的API不存在AFAIK。

然而,实际上它是很容易只是通过遍历键从它的名称的工作重点:

public JobKey findJobKey(String jobName) { 
    // Check running jobs first 
    for (JobExecutionContext runningJob : scheduler.getCurrentlyExecutingJobs()) { 
     if (Objects.equals(jobName, runningJob.getJobDetail().getKey().getName())) { 
      return runningJob.getJobDetail().getKey(); 
     } 
    } 
    // Check all jobs if not found 
    for (String groupName : scheduler.getJobGroupNames()) { 
     for (JobKey jobKey : scheduler.getJobKeys(GroupMatcher.jobGroupEquals(groupName))) { 
      if (Objects.equals(jobName, jobKey.getName())) { 
       return jobKey; 
      } 
     } 
    } 
}