List of usage examples for org.springframework.batch.core JobExecution getJobParameters
public JobParameters getJobParameters()
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()); }