有没有办法按作业名称获取石英中的作业密钥



现在我正在寻找在 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;
}
}
}
}

最新更新