现在我正在搜索通过 Quartz 库中的作业名称获取作业键的功能。
我看到了 Scheduler
有方法使用 GroupMatcher<JobKey>
按组名获取作业键还有Quartz
有NameMatcher
可以使用与 GroupMatcher
相同的方式使用
Set<JobKey> getJobKeys(NameMatcher<JobKey> matcher) throws SchedulerException;
你知道这个功能已经存在于 Quartz 库中了吗?
最佳答案
根据作业名称使用 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;
}
}
}
}
关于java - 有什么方法可以通过作业名称在 Quartz 中获取作业 key ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43651304/