@Override public void setProgressMax(int max) { jobExecution.setProgressMax(max); update(); }
@Override public void status(String message) { JOB_EXECUTION_LOG.info(message); jobExecution.setProgressMessage(message); update(); }
@Override public void progress(int progress, String message) { jobExecution.setProgressInt(progress); jobExecution.setProgressMessage(message); JOB_EXECUTION_LOG.debug("progress ({}, {})", progress, message); update(); }
@Override public void increment(int amount) { jobExecution.setProgressInt(jobExecution.getProgressInt() + amount); update(); }
@Override public void start() { JobExecutionHolder.set(jobExecution); JOB_EXECUTION_LOG.info("Execution started."); jobExecution.setStartDate(Instant.now()); jobExecution.setStatus(RUNNING); update(); }
@Override public void failed(String message, @Nullable Throwable throwable) { JOB_EXECUTION_LOG.error("Failed. " + message, throwable); jobExecution.setEndDate(Instant.now()); jobExecution.setStatus(FAILED); jobExecution.setProgressMessage(message); sendEmail( jobExecution.getFailureEmail(), jobExecution.getType() + " job failed.", jobExecution.getLog()); update(); JobExecutionHolder.unset(); }
@Override public void canceled() { JOB_EXECUTION_LOG.warn("Canceled"); jobExecution.setEndDate(Instant.now()); jobExecution.setStatus(CANCELED); sendEmail( jobExecution.getFailureEmail(), jobExecution.getType() + " job failed.", jobExecution.getLog()); update(); JobExecutionHolder.unset(); }
@Override public void success() { jobExecution.setEndDate(Instant.now()); jobExecution.setStatus(SUCCESS); jobExecution.setProgressInt(jobExecution.getProgressMax()); Duration yourDuration = Duration.millis(timeRunning()); Period period = yourDuration.toPeriod(); PeriodFormatter periodFormatter = new PeriodFormatterBuilder() .appendDays() .appendSuffix("d ") .appendHours() .appendSuffix("h ") .appendMinutes() .appendSuffix("m ") .appendSeconds() .appendSuffix("s ") .appendMillis() .appendSuffix("ms ") .toFormatter(); String timeSpent = periodFormatter.print(period); JOB_EXECUTION_LOG.info("Execution successful. Time spent: {}", timeSpent); sendEmail( jobExecution.getSuccessEmail(), jobExecution.getType() + " job succeeded.", jobExecution.getLog()); update(); JobExecutionHolder.unset(); }