现在我正在搜索Quartz库中按作业名称获取作业键的功能。
我看到Scheduler
有使用GroupMatcher<JobKey>
按组名称获取工作密钥的方法Quartz
有NameMatcher
,其用户方式与{{1}相同}
GroupMatcher
您知道Quartz库中是否已存在此功能?
答案 0 :(得分:5)
使用JobKey
按作业名称获取NameMatcher
的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;
}
}
}
}