private void flattenNode(JobStatusTreeNode node) { flattenNodes.put(node.jobStatus.getJobId(), node); for (JobStatusTreeNode childNode : node.children) { flattenNode(childNode); } }
public List<IJobStatus> getChildren(IJobStatus jobStatus) { return getChildren(jobStatus.getJobId()); } public List<IJobStatus> getChildren(String jobId) {
public IJobStatus getParent(IJobStatus jobStatus) { return getParent(jobStatus.getJobId()); } public IJobStatus getParent(String jobId) {
@Override public String toString() { final StringBuilder b = new StringBuilder(); toString(b, getRoot().getJobId(), 0); return b.toString(); } private void toString(StringBuilder b, String jobId, int depth) {
private void writeJobId(Writer out, JobSuiteStatusSnapshot statusTree, IJobStatus status) throws IOException { out.write("<job name=\""); out.write(StringEscapeUtils.escapeXml10(status.getJobId())); out.write("\">"); for (IJobStatus child : statusTree.getChildren(status)) { writeJobId(out, statusTree, child); } out.write("</job>"); }
private void toString(StringBuilder b, String jobId, int depth) { IJobStatus status = getJobStatus(jobId); b.append(StringUtils.repeat(' ', depth * TO_STRING_INDENT)); b.append(StringUtils.leftPad(new PercentFormatter().format( status.getProgress()), TO_STRING_INDENT)); b.append(" ").append(status.getJobId()); b.append(System.lineSeparator()); for (IJobStatus child : getChildren(jobId)) { toString(b, child.getJobId(), depth + 1); } } }
public void accept(IJobStatusVisitor visitor) { accept(visitor, getRoot().getJobId()); } private void accept(IJobStatusVisitor visitor, String jobId) {
public synchronized void childStatusChanged(IJobStatus status) { int jobIndex = jobIds.indexOf(status.getJobId()); if (jobIndex >= 0) { completionRatios[jobIndex] = status.getProgress(); } // Compute average double ratioTotal = 0; int completedCount = 0; for (int i = 0; i < completionRatios.length; i++) { if (completionRatios[i] >= 1.0d) { completedCount++; } ratioTotal += completionRatios[i]; } statusUpdater.setProgress(Math.min(1.0d, (ratioTotal / jobs.length))); statusUpdater.setNote(completedCount + " of " + jobs.length + " jobs completed."); }
private void accept(IJobStatusVisitor visitor, String jobId) { if (visitor != null) { visitor.visitJobStatus(getJobStatus(jobId)); for (IJobStatus child : getChildren(jobId)) { accept(visitor, child.getJobId()); } } }
jobId = event.getStatus().getJobId(); percent = Double.toString( event.getStatus().getProgress() * PROGRESS_RATIO);
@Override protected void statusUpdated(MutableJobStatus status) { try { getJobStatusStore().write(getId(), status); } catch (IOException e) { throw new JEFException( "Cannot persist status update for job: " + status.getJobId(), e); } fire(jobLifeCycleListeners, "jobProgressed", status); IJobStatus parentStatus = jobSuiteStatusSnapshot.getParent(status); if (parentStatus != null) { IJobGroup jobGroup = (IJobGroup) jobs.get(parentStatus.getJobId()); if (jobGroup != null) { jobGroup.groupProgressed(status); } } } }, this);
for (IJobStatus jobStatus : statuses) { getJobStatusStore().backup( getId(), jobStatus.getJobId(), backupDate);
config.setString("jobId", jobStatus.getJobId()); config.setDouble("progress", jobStatus.getProgress()); if (jobStatus.getNote() != null) { File file = getStatusFile(suiteName, jobStatus.getJobId()); if (LOG.isDebugEnabled()) { LOG.debug("Writing status file: " + file); FileLock lock = channel.lock()) { StringWriter sw = new StringWriter(); config.store(sw, "Status for job: " + jobStatus.getJobId()); ras.writeUTF(sw.toString());