ReadyService.java 文件源码

java
阅读 15 收藏 0 点赞 0 评论 0

项目:elastic-job-cloud 作者:
/**
 * 从待执行队列中获取所有有资格执行的作业上下文.
 *
 * @param ineligibleJobContexts 无资格执行的作业上下文
 * @return 有资格执行的作业上下文集合
 */
public Collection<JobContext> getAllEligibleJobContexts(final Collection<JobContext> ineligibleJobContexts) {
    if (!regCenter.isExisted(ReadyNode.ROOT)) {
        return Collections.emptyList();
    }
    Collection<String> ineligibleJobNames = Collections2.transform(ineligibleJobContexts, new Function<JobContext, String>() {

        @Override
        public String apply(final JobContext input) {
            return input.getJobConfig().getJobName();
        }
    });
    List<String> jobNames = regCenter.getChildrenKeys(ReadyNode.ROOT);
    List<JobContext> result = new ArrayList<>(jobNames.size());
    for (String each : jobNames) {
        if (ineligibleJobNames.contains(each)) {
            continue;
        }
        Optional<CloudJobConfiguration> jobConfig = configService.load(each);
        if (!jobConfig.isPresent()) {
            regCenter.remove(ReadyNode.getReadyJobNodePath(each));
            continue;
        }
        if (!runningService.isJobRunning(each)) {
            result.add(JobContext.from(jobConfig.get(), ExecutionType.READY));
        }
    }
    return result;
}
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号