private double getDurationBasedEstimate(double duration) { CumulativeHistory durationHistory = stepExecutionHistory.getDuration(); if (durationHistory.getMean() == 0) { percentCompleteBasis = PercentCompleteBasis.NOINFORMATION; return 0.5; } return duration / durationHistory.getMean(); }
@Override public String toString() { return String.format("[N=%d, min=%f, max=%f, mean=%f, sigma=%f]", count, min, max, getMean(), getStandardDeviation()); } }
public double getStandardDeviation() { double mean = getMean(); return count > 0 ? Math.sqrt(sumSquares / count - mean * mean) : 0; }
private double calculatePercentageComplete() { if (isFinished) { percentCompleteBasis = PercentCompleteBasis.ENDTIME; return 1; } if (stepExecutionHistory.getCount() == 0) { percentCompleteBasis = PercentCompleteBasis.NOHISTORY; return 0.5; } CumulativeHistory readHistory = stepExecutionHistory.getReadCount(); if (readHistory.getMean() == 0) { percentCompleteBasis = PercentCompleteBasis.DURATION; return getDurationBasedEstimate(duration); } percentCompleteBasis = PercentCompleteBasis.READCOUNT; return stepExecution.getReadCount() / readHistory.getMean(); }
@Override public JobExecutionThinResource toResource(TaskJobExecution taskJobExecution) { return createResourceWithId(taskJobExecution.getJobExecution().getId(), taskJobExecution); }
/** * Compute step execution history for the given jobs step. * * @param jobName the name of the job * @param stepName the name of the step * @return the step execution history for the given step */ private StepExecutionHistory computeHistory(String jobName, String stepName) { int total = jobService.countStepExecutionsForStep(jobName, stepName); StepExecutionHistory stepExecutionHistory = new StepExecutionHistory(stepName); for (int i = 0; i < total; i += 1000) { for (StepExecution stepExecution : jobService.listStepExecutionsForStep(jobName, stepName, i, 1000)) { stepExecutionHistory.append(stepExecution); } } return stepExecutionHistory; }
@Override public TaskExecutionResource toResource(TaskJobExecutionRel taskJobExecutionRel) { return createResourceWithId(taskJobExecutionRel.getTaskExecution().getExecutionId(), taskJobExecutionRel); }
private TaskJobExecution getTaskJobExecution(JobExecution jobExecution) { return new TaskJobExecution(getTaskExecutionId(jobExecution), jobExecution, isTaskDefined(jobExecution), jobExecution.getStepExecutions().size()); }
@Override public JobInstanceResource toResource(JobInstanceExecutions jobInstance) { return createResourceWithId(jobInstance.getJobInstance().getInstanceId(), jobInstance); }
public void append(StepExecution stepExecution) { if (stepExecution.getEndTime() == null) { // ignore unfinished executions return; } Date startTime = stepExecution.getStartTime(); Date endTime = stepExecution.getEndTime(); long time = endTime.getTime() - startTime.getTime(); duration.append(time); if (stepExecution.getReadCount() > 0) { durationPerRead.append(time / stepExecution.getReadCount()); } count++; commitCount.append(stepExecution.getCommitCount()); rollbackCount.append(stepExecution.getRollbackCount()); readCount.append(stepExecution.getReadCount()); writeCount.append(stepExecution.getWriteCount()); filterCount.append(stepExecution.getFilterCount()); readSkipCount.append(stepExecution.getReadSkipCount()); writeSkipCount.append(stepExecution.getWriteSkipCount()); processSkipCount.append(stepExecution.getProcessSkipCount()); }
private double calculatePercentageComplete() { if (isFinished) { percentCompleteBasis = PercentCompleteBasis.ENDTIME; return 1; } if (stepExecutionHistory.getCount() == 0) { percentCompleteBasis = PercentCompleteBasis.NOHISTORY; return 0.5; } CumulativeHistory readHistory = stepExecutionHistory.getReadCount(); if (readHistory.getMean() == 0) { percentCompleteBasis = PercentCompleteBasis.DURATION; return getDurationBasedEstimate(duration); } percentCompleteBasis = PercentCompleteBasis.READCOUNT; return stepExecution.getReadCount() / readHistory.getMean(); }
private double getDurationBasedEstimate(double duration) { CumulativeHistory durationHistory = stepExecutionHistory.getDuration(); if (durationHistory.getMean() == 0) { percentCompleteBasis = PercentCompleteBasis.NOINFORMATION; return 0.5; } return duration / durationHistory.getMean(); }
@Override public String toString() { return String.format("[N=%d, min=%f, max=%f, mean=%f, sigma=%f]", count, min, max, getMean(), getStandardDeviation()); } }
@Override public JobExecutionResource toResource(TaskJobExecution taskJobExecution) { return createResourceWithId(taskJobExecution.getJobExecution().getId(), taskJobExecution); }
public double getStandardDeviation() { double mean = getMean(); return count > 0 ? Math.sqrt(sumSquares / count - mean * mean) : 0; }
/** * Compute step execution history for the given jobs step. * * @param jobName the name of the job * @param stepName the name of the step * @return the step execution history for the given step */ private StepExecutionHistory computeHistory(String jobName, String stepName) { int total = jobService.countStepExecutionsForStep(jobName, stepName); StepExecutionHistory stepExecutionHistory = new StepExecutionHistory(stepName); for (int i = 0; i < total; i += 1000) { for (StepExecution stepExecution : jobService.listStepExecutionsForStep(jobName, stepName, i, 1000)) { stepExecutionHistory.append(stepExecution); } } return stepExecutionHistory; }
@Override public TaskExecutionResource toResource(TaskJobExecutionRel taskJobExecutionRel) { return createResourceWithId(taskJobExecutionRel.getTaskExecution().getExecutionId(), taskJobExecutionRel); }
private TaskJobExecution getTaskJobExecutionWithStepCount(JobExecutionWithStepCount jobExecutionWithStepCount) { return new TaskJobExecution(getTaskExecutionId(jobExecutionWithStepCount), jobExecutionWithStepCount, isTaskDefined(jobExecutionWithStepCount), jobExecutionWithStepCount.getStepCount()); }
@Override public JobInstanceResource toResource(JobInstanceExecutions jobInstance) { return createResourceWithId(jobInstance.getJobInstance().getInstanceId(), jobInstance); }
@Override public JobExecutionResource toResource(TaskJobExecution taskJobExecution) { return createResourceWithId(taskJobExecution.getJobExecution().getId(), taskJobExecution); }