有什么办法由作业名
问题描述:
现在我正在寻找的功能由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;
}
}
}
}