public void run() { JobInProgress job; while (true) { job = null; try { synchronized (jobInitQueue) { while (jobInitQueue.isEmpty()) { jobInitQueue.wait(); } job = jobInitQueue.remove(0); } job.initTasks(); } catch (InterruptedException t) { break; } catch (Throwable t) { LOG.error("Job initialization failed:\n" + StringUtils.stringifyException(t)); if (job != null) { job.fail(); } } } } }
private void checkAndInit() throws IOException { String jobStatus = this.job.get(Keys.JOB_STATUS); if (Values.PREP.name().equals(jobStatus)) { hasUpdates = true; LOG.info("Calling init from RM for job " + jip.getJobID().toString()); jip.initTasks(); } }
JobStatus prevStatus = (JobStatus)job.getStatus().clone(); LOG.info("Initializing " + job.getJobID()); job.initTasks();
JobStatus prevStatus = (JobStatus)job.getStatus().clone(); LOG.info("Initializing " + job.getJobID()); job.initTasks();
public void initJob(JobInProgress job) { try { JobStatus prevStatus = (JobStatus)job.getStatus().clone(); job.initTasks(); if (job.isJobEmpty()) { completeEmptyJob(job); } else if (!job.isSetupCleanupRequired()) { job.completeSetup(); } JobStatus newStatus = (JobStatus)job.getStatus().clone(); if (prevStatus.getRunState() != newStatus.getRunState()) { JobStatusChangeEvent event = new JobStatusChangeEvent(job, EventType.RUN_STATE_CHANGED, prevStatus, newStatus); for (JobInProgressListener listener : listeners) { listener.jobUpdated(event); } } } catch (KillInterruptedException kie) { killJob(job.getJobID()); } catch (IOException ioe) { failJob(job); } }