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

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

Introduction

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

Prototype

public JobParameters getJobParameters() 

Source Link

Usage

From source file:br.com.postalis.folhapgto.steps.consultarLog.ConsultarLogImportacaoDecider.java

public FlowExecutionStatus decide(JobExecution jobExecution, StepExecution stepExecution) {

    dtReferencia = (Date) jobExecution.getJobParameters().getParameters().get("dtReferencia").getValue();
    qtdErro = (Integer) jobExecution.getExecutionContext().get("qtdErro");

    LOGGER.info("Verificando se ainda existem registros a processar...");
    long qtdFaltam = consignacaoPopulisRepository.countEnvNaoIncorpByDtReferencia(dtReferencia);
    if (qtdFaltam > 0) {
        loop++;/*from ww  w  .  j a v a2s  .c  o m*/
        if (loop <= 5) {
            LOGGER.warn(
                    "Encontrou " + qtdFaltam + " registros a processar, voltando para procesar o que falta!!!");
            return new FlowExecutionStatus("LOOP");
        } else {
            LOGGER.warn("ATENO!!!ATENO!!!ATENO!!!");
            LOGGER.warn("AINDA FALTAM: " + qtdFaltam + " LANAMENTOS PARA SEREM ENVIADOS. ");
            LOGGER.warn("O SISTEMA RE-EXECUTA AUTOMTICAMENTE APENAS 5 VEZES. ");
            LOGGER.warn(
                    "CASO QUEIRA ENVIAR OS LANAMENTOS PENDENTES, EXECUTE NOVAMENTE O SISTEMA MANUALMENTE!!! ");
            return FlowExecutionStatus.COMPLETED;
        }
    } else {
        if (qtdErro > 0) {
            LOGGER.warn("ATENO!!!ATENO!!!ATENO!!!");
            LOGGER.warn("ALGUMAS RUBRICAS FORAM CRITICADAS PELA ECT. FAVOR, VERIFICAR NA BASE!!! ");
        }
        return FlowExecutionStatus.COMPLETED;
    }
}

From source file:br.com.postalis.folhapgto.steps.consultarIncorporados.ConsultarRubIncorporadasDecider.java

public FlowExecutionStatus decide(JobExecution jobExecution, StepExecution stepExecution) {

    dtReferencia = (Date) jobExecution.getJobParameters().getParameters().get("dtReferencia").getValue();
    qtdErro = (Integer) jobExecution.getExecutionContext().get("qtdErro");

    LOGGER.info("Verificando se ainda existem registros a processar...");
    long qtdFaltam = consignacaoPopulisRepository
            .countRubricaFPByDtReferenciaAndIdIncorporadaIsNull(dtReferencia);
    if (qtdFaltam > 0) {
        loop++;// w w w  . j  av a 2s  .  c  o m
        if (loop <= 5) {
            LOGGER.warn(
                    "Encontrou " + qtdFaltam + " registros a processar, voltando para procesar o que falta!!!");
            return new FlowExecutionStatus("LOOP");
        } else {
            LOGGER.warn("ATENO!!!ATENO!!!ATENO!!!");
            LOGGER.warn("AINDA FALTAM: " + qtdFaltam + " LANAMENTOS PARA SEREM ENVIADOS. ");
            LOGGER.warn("O SISTEMA RE-EXECUTA AUTOMTICAMENTE APENAS 5 VEZES. ");
            LOGGER.warn(
                    "CASO QUEIRA ENVIAR OS LANAMENTOS PENDENTES, EXECUTE NOVAMENTE O SISTEMA MANUALMENTE!!! ");
            return FlowExecutionStatus.COMPLETED;
        }
    } else {
        if (qtdErro > 0) {
            LOGGER.warn("ATENO!!!ATENO!!!ATENO!!!");
            LOGGER.warn("ALGUMAS RUBRICAS FORAM CRITICADAS PELA ECT. FAVOR, VERIFICAR NA BASE!!! ");
        }

        return FlowExecutionStatus.COMPLETED;
    }
}

From source file:br.com.postalis.folhapgto.steps.importarRubricas.ImportarRubricasFolhaPgtoDecider.java

public FlowExecutionStatus decide(JobExecution jobExecution, StepExecution stepExecution) {

    dtReferencia = (Date) jobExecution.getJobParameters().getParameters().get("dtReferencia").getValue();
    controle = (PosGpxConsignacaoPopulisControle) jobExecution.getExecutionContext().get("controle");
    qtdErro = (Integer) jobExecution.getExecutionContext().get("qtdErro");

    LOGGER.info("Verificando se ainda existem registros a processar...");
    long qtdFaltam = consignacaoPopulisRepository
            .countByDtReferenciaAndVlVerbaGreaterThanAndCsFuncionarioCdEmpresa(dtReferencia);
    if (qtdFaltam > 0) {
        loop++;/*from  w  w w .j  a  va2  s  .c  o  m*/
        if (loop <= 5) {
            LOGGER.warn(
                    "Encontrou " + qtdFaltam + " registros a processar, voltando para procesar o que falta!!!");
            return new FlowExecutionStatus("LOOP");
        } else {
            LOGGER.warn("ATENO!!!ATENO!!!ATENO!!!");
            LOGGER.warn("AINDA FALTAM: " + qtdFaltam + " LANAMENTOS PARA SEREM ENVIADOS. ");
            LOGGER.warn("O SISTEMA RE-EXECUTA AUTOMTICAMENTE APENAS 5 VEZES. ");
            LOGGER.warn(
                    "CASO QUEIRA ENVIAR OS LANAMENTOS PENDENTES, EXECUTE NOVAMENTE O SISTEMA MANUALMENTE!!! ");
            return FlowExecutionStatus.COMPLETED;
        }
    } else {
        controle.setIdExportado('S');
        controleRepository.save(controle);
        if (qtdErro > 0) {
            LOGGER.warn("ATENO!!!ATENO!!!ATENO!!!");
            LOGGER.warn("ALGUMAS RUBRICAS FORAM CRITICADAS PELA ECT. FAVOR, VERIFICAR NA BASE!!! ");
        }
        return FlowExecutionStatus.COMPLETED;
    }
}

From source file:br.com.postalis.folhapgto.steps.posFolha.ConsultarDescPosFolhaDecider.java

public FlowExecutionStatus decide(JobExecution jobExecution, StepExecution stepExecution) {

    dtReferencia = (Date) jobExecution.getJobParameters().getParameters().get("dtReferencia").getValue();
    listaControle = (List<PosGpxConsignacaoPopulisControle>) jobExecution.getExecutionContext()
            .get("listaControle");
    qtdErro = (Integer) jobExecution.getExecutionContext().get("qtdErro");

    LOGGER.info("Verificando se ainda existem registros a processar...");
    long qtdFaltam = consignacaoPopulisRepository.countByDtReferenciaAndEnviados(dtReferencia);
    if (qtdFaltam > 0) {
        loop++;//from  w  w w .  j a va2s.c om
        if (loop <= 5) {
            LOGGER.warn(
                    "Encontrou " + qtdFaltam + " registros a processar, voltando para procesar o que falta!!!");
            return new FlowExecutionStatus("LOOP");
        } else {
            LOGGER.warn("ATENO!!!ATENO!!!ATENO!!!");
            LOGGER.warn("AINDA FALTAM: " + qtdFaltam + " LANAMENTOS PARA SEREM ENVIADOS. ");
            LOGGER.warn("O SISTEMA RE-EXECUTA AUTOMTICAMENTE APENAS 5 VEZES. ");
            LOGGER.warn(
                    "CASO QUEIRA ENVIAR OS LANAMENTOS PENDENTES, EXECUTE NOVAMENTE O SISTEMA MANUALMENTE!!! ");
            return FlowExecutionStatus.COMPLETED;
        }
    } else {
        for (PosGpxConsignacaoPopulisControle controle : listaControle) {
            controle.setIdExportado('S');
            controleRepository.save(controle);
        }

        if (qtdErro > 0) {
            LOGGER.warn("ATENO!!!ATENO!!!ATENO!!!");
            LOGGER.warn("ALGUMAS RUBRICAS FORAM CRITICADAS PELA ECT. FAVOR, VERIFICAR NA BASE!!! ");
        }
        return FlowExecutionStatus.COMPLETED;
    }
}

From source file:com.github.jrrdev.mantisbtsync.core.jobs.issues.tasklets.IssuesLastRunExtractorTasklet.java

/**
 * {@inheritDoc}//from  w  ww .  j  av  a2 s  . co m
 * @see org.springframework.batch.core.step.tasklet.Tasklet#execute(org.springframework.batch.core.StepContribution, org.springframework.batch.core.scope.context.ChunkContext)
 */
@Override
public RepeatStatus execute(final StepContribution contribution, final ChunkContext chunkContext)
        throws Exception {

    final StepContext stepContext = chunkContext.getStepContext();
    final String jobName = stepContext.getJobName();
    final JobParameters jobParams = stepContext.getStepExecution().getJobParameters();
    final Map<String, JobParameter> currParams = new HashMap<String, JobParameter>(jobParams.getParameters());
    currParams.remove("run.id");

    Date lastJobRun = null;

    final List<JobInstance> jobInstances = jobExplorer.getJobInstances(jobName, 0, 1000);
    for (final JobInstance jobInstance : jobInstances) {
        final List<JobExecution> jobExecutions = jobExplorer.getJobExecutions(jobInstance);
        for (final JobExecution jobExecution : jobExecutions) {

            final JobParameters oldJobParams = jobExecution.getJobParameters();
            final Map<String, JobParameter> oldParams = new HashMap<String, JobParameter>(
                    oldJobParams.getParameters());
            oldParams.remove("run.id");

            if (ExitStatus.COMPLETED.equals(jobExecution.getExitStatus()) && oldParams.equals(currParams)) {

                if (lastJobRun == null || lastJobRun.before(jobExecution.getStartTime())) {
                    lastJobRun = jobExecution.getStartTime();
                }
            }
        }
    }

    if (lastJobRun != null) {
        stepContext.getStepExecution().getExecutionContext().put("mantis.update.last_job_run", lastJobRun);
    }

    stepContext.getStepExecution().getExecutionContext().put("mantis.update.current_job_run",
            Calendar.getInstance());

    return RepeatStatus.FINISHED;
}

From source file:org.duracloud.snapshot.service.impl.SnapshotJobExecutionListener.java

@Transactional
public void beforeJob(JobExecution jobExecution) {
    log.debug("entering beforeJob()");

    JobParameters jobParams = jobExecution.getJobParameters();

    String snapshotId = this.parameterMarshaller.unmarshal(jobParams);
    String jobName = jobExecution.getJobInstance().getJobName();

    if (jobName.equals(SnapshotServiceConstants.SNAPSHOT_JOB_NAME)) {
        SnapshotStatus status = SnapshotStatus.TRANSFERRING_FROM_DURACLOUD;
        log.debug("updating snapshot status to " + status + " for snapshot.name = " + snapshotId
                + "; jobParameters = " + jobParams);
        Snapshot snapshot = snapshotRepo.findByName(snapshotId);
        changeSnapshotStatus(snapshot, status, "");
    }/* w  w  w .j a v  a2 s  .  com*/
}

From source file:org.duracloud.snapshot.service.impl.RestoreJobExecutionListener.java

@Transactional
public void afterJob(JobExecution jobExecution) {
    JobParameters jobParams = jobExecution.getJobParameters();
    BatchStatus status = jobExecution.getStatus();
    String restorationId = RestoreJobParameterMarshaller.unmarshal(jobParams);
    Restoration restoration = restoreRepo.findByRestorationId(restorationId);
    String restorationPath = ContentDirUtils.getSourcePath(restoration.getRestorationId(),
            config.getContentRoot());//  w  w  w . j a  v a 2  s .  c  o m
    log.debug("Completed restoration: {} with status: {}", restoration.getRestorationId(), status);

    Snapshot snapshot = restoration.getSnapshot();
    String snapshotId = snapshot.getName();
    String restoreId = restoration.getRestorationId();

    if (BatchStatus.COMPLETED.equals(status)) {
        // Job success. Email duracloud team as well as restoration requestor

        changeRestoreStatus(restoration, RestoreStatus.RESTORATION_COMPLETE,
                "Completed transfer to duracloud: " + new Date());
        String subject = "DuraCloud snapshot " + snapshotId + " has been restored! Restore ID = " + restoreId;
        String message = "A DuraCloud snapshot restore has completed successfully:\n\n";

        DuracloudEndPointConfig destination = restoration.getDestination();
        message += "SnapshotId: " + snapshotId + "\n";
        message += "Restore Id: " + restoreId + "\n";
        message += "Destination Host: " + destination.getHost() + "\n";
        message += "Destination Port: " + destination.getPort() + "\n";
        message += "Destination StoreId: " + destination.getStoreId() + "\n";
        message += "Destination SpaceId: " + destination.getSpaceId() + "\n";

        log.info("deleting restoration path " + restorationPath);

        try {
            FileUtils.deleteDirectory(new File(restorationPath));
        } catch (IOException e) {
            log.error("failed to delete restoration path = " + restorationPath + ": " + e.getMessage(), e);
        }

        List<String> emailAddresses = new ArrayList<>(Arrays.asList(config.getDuracloudEmailAddresses()));
        emailAddresses.add(restoration.getUserEmail());
        sendEmail(subject, message, emailAddresses.toArray(new String[0]));

    } else {
        changeRestoreStatus(restoration, RestoreStatus.ERROR, "failed to transfer to duracloud: " + new Date());

        // Job failed.  Email DuraSpace team about failed snapshot attempt.
        String subject = "DuraCloud snapshot " + snapshotId + " restoration failed to complete";
        String message = "A DuraCloud snapshot restoration has failed to complete.\n" + "\nrestore-id="
                + restoreId + "\nsnapshot-id=" + snapshotId + "\nrestore-path=" + restorationPath;
        // TODO: Add details of failure in message
        sendEmail(subject, message, config.getDuracloudEmailAddresses());

    }
}

From source file:org.duracloud.snapshot.service.impl.SnapshotJobExecutionListener.java

@Transactional
public void afterJob(JobExecution jobExecution) {
    log.debug("entering afterJob()...");
    JobParameters jobParams = jobExecution.getJobParameters();
    BatchStatus status = jobExecution.getStatus();

    String snapshotName = this.parameterMarshaller.unmarshal(jobParams);

    Snapshot snapshot = snapshotRepo.findByName(snapshotName);
    String snapshotPath = ContentDirUtils.getDestinationPath(snapshot.getName(), config.getContentRoot());
    log.debug("Completed snapshot: {} with status: {}", snapshotName, status);

    if (BatchStatus.COMPLETED.equals(status)) {
        File snapshotDir = new File(snapshotPath);
        snapshot.setTotalSizeInBytes(FileUtils.sizeOfDirectory(snapshotDir));
        // Job success. Email Chronopolis/DPN AND DuraSpace teams about
        // snapshot ready for transfer into preservation storage.
        String subject = "DuraCloud content snapshot ready for preservation";
        String message = "A DuraCloud content snapshot has been transferred from "
                + "DuraCloud to bridge storage and ready to move into " + "preservation storage.\n"
                + "\nsnapshot-id=" + snapshotName + "\nsnapshot-path=" + snapshotPath;
        sendEmail(subject, message, config.getAllEmailAddresses());

        changeSnapshotStatus(snapshot, SnapshotStatus.WAITING_FOR_DPN, "");
    } else {/*from  w  w  w .ja v a 2s .  c om*/
        // Job failed.  Email DuraSpace team about failed snapshot attempt.
        String subject = "DuraCloud content snapshot failed to complete";
        String message = "A DuraCloud content snapshot has failed to complete.\n" + "\nsnapshot-id="
                + snapshot.getName() + "\nsnapshot-path=" + snapshotPath;
        // TODO: Add details of failure in message
        sendEmail(subject, message, config.getDuracloudEmailAddresses());
        changeSnapshotStatus(snapshot, SnapshotStatus.FAILED_TO_TRANSFER_FROM_DURACLOUD,
                "batch job did not complete: batch status = " + status);

    }
}

From source file:de.codecentric.batch.test.JobParametersIncrementerIntegrationTest.java

@Test
public void testRunJob() throws InterruptedException {
    MultiValueMap<String, Object> requestMap = new LinkedMultiValueMap<>();
    requestMap.add("jobParameters", "param1=value1");
    Long executionId = restTemplate.postForObject(
            "http://localhost:" + port + "/batch/operations/jobs/incrementerJob", requestMap, Long.class);
    while (!restTemplate
            .getForObject("http://localhost:" + port + "/batch/operations/jobs/executions/{executionId}",
                    String.class, executionId)
            .equals("COMPLETED")) {
        Thread.sleep(1000);/* w w  w.  ja v  a  2s. co  m*/
    }
    JobExecution jobExecution = jobExplorer.getJobExecution(executionId);
    assertThat(jobExecution.getStatus(), is(BatchStatus.COMPLETED));
    assertThat(jobExecution.getJobParameters().getLong("run.id"), is(1l));
    assertThat(jobExecution.getJobParameters().getString("param1"), is("value1"));
    executionId = restTemplate.postForObject(
            "http://localhost:" + port + "/batch/operations/jobs/incrementerJob", "", Long.class);
    while (!restTemplate
            .getForObject("http://localhost:" + port + "/batch/operations/jobs/executions/{executionId}",
                    String.class, executionId)
            .equals("COMPLETED")) {
        Thread.sleep(1000);
    }
    jobExecution = jobExplorer.getJobExecution(executionId);
    assertThat(jobExecution.getStatus(), is(BatchStatus.COMPLETED));
    assertThat(jobExecution.getJobParameters().getLong("run.id"), is(2l));
    requestMap = new LinkedMultiValueMap<>();
    requestMap.add("jobParameters", "param1=value1,param2=value2");
    executionId = restTemplate.postForObject(
            "http://localhost:" + port + "/batch/operations/jobs/incrementerJob", requestMap, Long.class);
    while (!restTemplate
            .getForObject("http://localhost:" + port + "/batch/operations/jobs/executions/{executionId}",
                    String.class, executionId)
            .equals("COMPLETED")) {
        Thread.sleep(1000);
    }
    jobExecution = jobExplorer.getJobExecution(executionId);
    assertThat(jobExecution.getStatus(), is(BatchStatus.COMPLETED));
    assertThat(jobExecution.getJobParameters().getLong("run.id"), is(3l));
    assertThat(jobExecution.getJobParameters().getString("param1"), is("value1"));
    assertThat(jobExecution.getJobParameters().getString("param2"), is("value2"));
}

From source file:com.skelton.cc.integration.JobRestart.java

@ServiceActivator
public void restartIfPossible(JobExecution execution) throws JobInstanceAlreadyCompleteException,
        JobParametersInvalidException, JobRestartException, JobExecutionAlreadyRunningException {
    System.out.println("Restarting job......................................................................");
    logger.info("Restarting job...");
    jobLauncher.run(job, execution.getJobParameters());
}