Example usage for org.springframework.batch.core JobExecution getJobInstance

List of usage examples for org.springframework.batch.core JobExecution getJobInstance

Introduction

In this page you can find the example usage for org.springframework.batch.core JobExecution getJobInstance.

Prototype

public JobInstance getJobInstance() 

Source Link

Usage

From source file:de.codecentric.batch.listener.ProtocolListener.java

public void afterJob(JobExecution jobExecution) {
    StringBuilder protocol = new StringBuilder();
    protocol.append("\n");
    protocol.append(createFilledLine('*'));
    protocol.append(createFilledLine('-'));
    protocol.append("Protocol for " + jobExecution.getJobInstance().getJobName() + " \n");
    protocol.append("  Started:      " + jobExecution.getStartTime() + "\n");
    protocol.append("  Finished:     " + jobExecution.getEndTime() + "\n");
    protocol.append("  Exit-Code:    " + jobExecution.getExitStatus().getExitCode() + "\n");
    protocol.append("  Exit-Descr:   " + jobExecution.getExitStatus().getExitDescription() + "\n");
    protocol.append("  Status:       " + jobExecution.getStatus() + "\n");
    protocol.append("  Content of Job-ExecutionContext:\n");
    for (Entry<String, Object> entry : jobExecution.getExecutionContext().entrySet()) {
        protocol.append("  " + entry.getKey() + "=" + entry.getValue() + "\n");
    }/*from  w w  w  . j  a  v  a  2  s . c om*/
    protocol.append("  Job-Parameter: \n");
    JobParameters jp = jobExecution.getJobParameters();
    for (Iterator<Entry<String, JobParameter>> iter = jp.getParameters().entrySet().iterator(); iter
            .hasNext();) {
        Entry<String, JobParameter> entry = iter.next();
        protocol.append("  " + entry.getKey() + "=" + entry.getValue() + "\n");
    }
    protocol.append(createFilledLine('-'));
    for (StepExecution stepExecution : jobExecution.getStepExecutions()) {
        protocol.append("Step " + stepExecution.getStepName() + " \n");
        protocol.append("  ReadCount:    " + stepExecution.getReadCount() + "\n");
        protocol.append("  WriteCount:   " + stepExecution.getWriteCount() + "\n");
        protocol.append("  Commits:      " + stepExecution.getCommitCount() + "\n");
        protocol.append("  SkipCount:    " + stepExecution.getSkipCount() + "\n");
        protocol.append("  Rollbacks:    " + stepExecution.getRollbackCount() + "\n");
        protocol.append("  Filter:       " + stepExecution.getFilterCount() + "\n");
        protocol.append("  Content of Step-ExecutionContext:\n");
        for (Entry<String, Object> entry : stepExecution.getExecutionContext().entrySet()) {
            protocol.append("  " + entry.getKey() + "=" + entry.getValue() + "\n");
        }
        protocol.append(createFilledLine('-'));
    }
    protocol.append(createFilledLine('*'));
    LOGGER.info(protocol.toString());
}

From source file:org.cloudfoundry.workers.stocks.batch.NightlyStockSymbolRecorder.java

@Scheduled(fixedRate = 10 * 1000)
public void runNightlyStockPriceRecorder() throws Throwable {
    JobParameters params = new JobParametersBuilder().addDate("date", new Date()).toJobParameters();

    JobExecution jobExecution = jobLauncher.run(job, params);
    BatchStatus batchStatus = jobExecution.getStatus();
    while (batchStatus.isRunning()) {
        logger.info("Still running...");
        Thread.sleep(1000);/*from w  ww . j  av a2 s  . c om*/
    }
    logger.info(String.format("Exit status: %s", jobExecution.getExitStatus().getExitCode()));
    JobInstance jobInstance = jobExecution.getJobInstance();
    logger.info(String.format("job instance Id: %d", jobInstance.getId()));
}

From source file:org.cloudfoundry.workers.twitter.batch.NightlyTweetRecorder.java

@Scheduled(fixedRate = 10 * 1000)
public void runNightlyTweetRecorder() throws Throwable {
    logger.info("Running nightly tweet recorder");
    JobParameters params = new JobParametersBuilder().addDate("date", new Date()).toJobParameters();

    JobExecution jobExecution = jobLauncher.run(job, params);
    BatchStatus batchStatus = jobExecution.getStatus();
    while (batchStatus.isRunning()) {
        logger.info("Still running...");
        Thread.sleep(1000);/*from   w w w.jav  a  2s . com*/
    }
    logger.info(String.format("Exit status: %s", jobExecution.getExitStatus().getExitCode()));
    JobInstance jobInstance = jobExecution.getJobInstance();
    logger.info(String.format("job instance Id: %d", jobInstance.getId()));
}

From source file:uk.ac.ebi.intact.editor.controller.dbmanager.ImportJobController.java

public boolean isJobEvidence(JobExecution execution) {
    if (execution == null) {
        return false;
    }/*  w w  w . j  a  v  a 2  s .  c  o  m*/
    return "interactionMixImport".equals(execution.getJobInstance().getJobName());
}

From source file:com.xchanging.support.batch.admin.service.SimpleJobService.java

public JobExecution restart(Long jobExecutionId)
        throws NoSuchJobExecutionException, JobExecutionAlreadyRunningException, JobRestartException,
        JobInstanceAlreadyCompleteException, NoSuchJobException, JobParametersInvalidException {

    JobExecution target = getJobExecution(jobExecutionId);
    JobInstance lastInstance = target.getJobInstance();

    Job job = jobLocator.getJob(lastInstance.getJobName());

    JobExecution jobExecution = jobLauncher.run(job, target.getJobInstance().getJobParameters());

    if (jobExecution.isRunning()) {
        activeExecutions.add(jobExecution);
    }//from   w w w .  jav a2s  . co  m
    return jobExecution;
}

From source file:admin.service.SimpleJobService.java

@Override
public JobExecution restart(Long jobExecutionId)
        throws NoSuchJobExecutionException, JobExecutionAlreadyRunningException, JobRestartException,
        JobInstanceAlreadyCompleteException, NoSuchJobException, JobParametersInvalidException {

    JobExecution target = getJobExecution(jobExecutionId);
    JobInstance lastInstance = target.getJobInstance();

    Job job = jobLocator.getJob(lastInstance.getJobName());

    JobExecution jobExecution = jobLauncher.run(job, target.getJobParameters());

    if (jobExecution.isRunning()) {
        activeExecutions.add(jobExecution);
    }/*from w  w w  .  j a v  a 2s .c o m*/
    return jobExecution;
}

From source file:org.trpr.platform.batch.impl.spring.admin.SimpleJobService.java

/**
 * Interface method implementation//from   ww  w .  jav a  2s . c om
 * @see org.springframework.batch.admin.service.JobService#restart(java.lang.Long)
 */
public JobExecution restart(Long jobExecutionId)
        throws NoSuchJobExecutionException, JobExecutionAlreadyRunningException, JobRestartException,
        JobInstanceAlreadyCompleteException, NoSuchJobException, JobParametersInvalidException {
    JobExecution target = getJobExecution(jobExecutionId);
    JobInstance lastInstance = target.getJobInstance();
    Job job = this.jobRegistry.getJob(lastInstance.getJobName());
    JobExecution jobExecution = this.jobLauncher.run(job, lastInstance.getJobParameters());
    if (jobExecution.isRunning()) {
        this.activeExecutions.add(jobExecution);
    }
    return jobExecution;
}

From source file:com.xchanging.support.batch.admin.service.SimpleJobService.java

public JobParameters getLastJobParameters(String jobName) throws NoSuchJobException {

    Collection<JobExecution> executions = jobExecutionDao.getJobExecutions(jobName, 0, 1);

    JobExecution lastExecution = null;
    if (!CollectionUtils.isEmpty(executions)) {
        lastExecution = executions.iterator().next();
    }//w  ww. jav  a 2s .  c om

    JobParameters oldParameters = new JobParameters();
    if (lastExecution != null) {
        oldParameters = lastExecution.getJobInstance().getJobParameters();
    }

    return oldParameters;

}

From source file:com.xchanging.support.batch.admin.service.SimpleJobService.java

public Collection<StepExecution> getStepExecutions(Long jobExecutionId) throws NoSuchJobExecutionException {

    JobExecution jobExecution = jobExecutionDao.getJobExecution(jobExecutionId);
    if (jobExecution == null) {
        throw new NoSuchJobExecutionException("No JobExecution with id=" + jobExecutionId);
    }/*from   w  ww .  j  a v  a2s.  com*/

    stepExecutionDao.addStepExecutions(jobExecution);

    String jobName = jobExecution.getJobInstance() == null ? null : jobExecution.getJobInstance().getJobName();
    Collection<String> missingStepNames = new LinkedHashSet<String>();

    if (jobName != null) {
        missingStepNames.addAll(stepExecutionDao.findStepNamesForJobExecution(jobName, "*:partition*"));
        logger.debug("Found step executions in repository: " + missingStepNames);
    }

    Job job = null;
    try {
        job = jobLocator.getJob(jobName);
    } catch (NoSuchJobException e) {
        // expected
    }
    if (job instanceof StepLocator) {
        Collection<String> stepNames = ((StepLocator) job).getStepNames();
        missingStepNames.addAll(stepNames);
        logger.debug("Added step executions from job: " + missingStepNames);
    }

    for (StepExecution stepExecution : jobExecution.getStepExecutions()) {
        String stepName = stepExecution.getStepName();
        if (missingStepNames.contains(stepName)) {
            missingStepNames.remove(stepName);
        }
        logger.debug("Removed step executions from job execution: " + missingStepNames);
    }

    for (String stepName : missingStepNames) {
        StepExecution stepExecution = jobExecution.createStepExecution(stepName);
        stepExecution.setStatus(BatchStatus.UNKNOWN);
    }

    return jobExecution.getStepExecutions();

}

From source file:admin.service.SimpleJobService.java

@Override
public Collection<StepExecution> getStepExecutions(Long jobExecutionId) throws NoSuchJobExecutionException {

    JobExecution jobExecution = jobExecutionDao.getJobExecution(jobExecutionId);
    if (jobExecution == null) {
        throw new NoSuchJobExecutionException("No JobExecution with id=" + jobExecutionId);
    }/* www .ja v a2 s.c o  m*/

    stepExecutionDao.addStepExecutions(jobExecution);

    String jobName = jobExecution.getJobInstance() == null
            ? jobInstanceDao.getJobInstance(jobExecution).getJobName()
            : jobExecution.getJobInstance().getJobName();
    Collection<String> missingStepNames = new LinkedHashSet<String>();

    if (jobName != null) {
        missingStepNames.addAll(stepExecutionDao.findStepNamesForJobExecution(jobName, "*:partition*"));
        logger.debug("Found step executions in repository: " + missingStepNames);
    }

    Job job = null;
    try {
        job = jobLocator.getJob(jobName);
    } catch (NoSuchJobException e) {
        // expected
    }
    if (job instanceof StepLocator) {
        Collection<String> stepNames = ((StepLocator) job).getStepNames();
        missingStepNames.addAll(stepNames);
        logger.debug("Added step executions from job: " + missingStepNames);
    }

    for (StepExecution stepExecution : jobExecution.getStepExecutions()) {
        String stepName = stepExecution.getStepName();
        if (missingStepNames.contains(stepName)) {
            missingStepNames.remove(stepName);
        }
        logger.debug("Removed step executions from job execution: " + missingStepNames);
    }

    for (String stepName : missingStepNames) {
        StepExecution stepExecution = jobExecution.createStepExecution(stepName);
        stepExecution.setStatus(BatchStatus.UNKNOWN);
    }

    return jobExecution.getStepExecutions();

}