@Override public synchronized void checkJobStatus() throws AnalysisException { // 通过外部事件激发重新载入配置 if (jobBuilder.isNeedRebuild()) { if (logger.isInfoEnabled()) { logger.info("check job status need to rebuild"); } jobs = jobBuilder.rebuild(jobs); if (jobs == null || (jobs != null && jobs.size() == 0)) throw new AnalysisException("jobs should not be empty!"); } checkTaskStatus(); mergeAndExportJobs(); // 任务全部完成并且没有新加任务的情况下,休息1s for (Job job : jobs.values()) { if (!job.isExported().get() || job.getRebuildTag() == 2) { return; } else { try { Thread.sleep(1000); } catch (InterruptedException e) { logger.error(e); } } } }