有没有办法按职位

时间:2017-04-27 07:30:42

标签: java quartz-scheduler

现在我正在搜索Quartz库中按作业名称获取作业键的功能。

我看到Scheduler有使用GroupMatcher<JobKey>按组名称获取工作密钥的方法QuartzNameMatcher,其用户方式与{{1}相同}

GroupMatcher

您知道Quartz库中是否已存在此功能?

1 个答案:

答案 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;
            }
        }
    }
}