现在我正在搜索Quartz库中按作业名称获取作业键的功能.
我看到Scheduler有方法使用GroupMatcher< JobKey>按组名获取作业密钥. Quartz也有NameMatcher,用户可以像GroupMatcher一样使用
Set getJobKeys(NameMatcher 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-scheduler
来源: https://codeday.me/bug/20190828/1752494.html