From 0204c0a3620de60e421cf401ffb775555f37ae26 Mon Sep 17 00:00:00 2001 From: Jinil Sung Date: Thu, 15 Feb 2024 10:52:51 -0800 Subject: [PATCH] GRAD2-2505: StepScope reader & writer warnings are resolved. GRAD2-2505: StepScope reader & writer warnings are resolved. --- .../config/BatchJobConfig.java | 255 ++++++++---------- .../controller/JobLauncherController.java | 12 +- .../entity/BatchStatusEnum.java | 7 +- ...cialRunCompletionNotificationListener.java | 6 - .../RunProjectedGradAlgorithmProcessor.java | 5 +- .../RunRegularGradAlgorithmProcessor.java | 6 +- .../RunSpecialGradAlgorithmProcessor.java | 5 +- ...pecialProjectedGradAlgorithmProcessor.java | 5 +- .../batchgraduation/writer/BaseWriter.java | 14 +- .../writer/TvrRunBatchPerformanceWriter.java | 6 - .../batchgraduation/config/BatchConfig.java | 10 + api/src/test/resources/application.yaml | 2 + tools/config/update-configmap.sh | 4 +- 13 files changed, 164 insertions(+), 173 deletions(-) diff --git a/api/src/main/java/ca/bc/gov/educ/api/batchgraduation/config/BatchJobConfig.java b/api/src/main/java/ca/bc/gov/educ/api/batchgraduation/config/BatchJobConfig.java index 7b65a30e..ac7ba394 100644 --- a/api/src/main/java/ca/bc/gov/educ/api/batchgraduation/config/BatchJobConfig.java +++ b/api/src/main/java/ca/bc/gov/educ/api/batchgraduation/config/BatchJobConfig.java @@ -33,11 +33,6 @@ @EnableBatchProcessing(isolationLevelForCreate = "ISOLATION_READ_COMMITTED") public class BatchJobConfig { - // Partitioning for Regular Grad Run updates - -// @Autowired -// JobRegistry jobRegistry; - /** * Regular Grad Algorithm Run * ItemProcessor,ItemReader and ItemWriter @@ -46,60 +41,63 @@ public class BatchJobConfig { @Bean @StepScope - public ItemProcessor itemProcessorRegGrad() { + public RunRegularGradAlgorithmProcessor itemProcessorRegGrad() { return new RunRegularGradAlgorithmProcessor(); } @Bean @StepScope - public ItemReader itemReaderRegGrad() { + public RecalculateStudentReader itemReaderRegGrad() { return new RecalculateStudentReader(); } @Bean @StepScope - public ItemReader itemReaderRegErrorGrad() { + public RecalculateStudentErrorReader itemReaderRegErrorGrad() { return new RecalculateStudentErrorReader(); } @Bean @StepScope - public ItemReader itemReaderRegErrorRetryGrad() { + public RecalculateStudentErrorRetryReader itemReaderRegErrorRetryGrad() { return new RecalculateStudentErrorRetryReader(); } @Bean @StepScope - public ItemWriter itemWriterRegGrad() { + public RegGradAlgBatchPerformanceWriter itemWriterRegGrad() { return new RegGradAlgBatchPerformanceWriter(); } @Bean - public Step masterStepRegGrad(JobRepository jobRepository, PlatformTransactionManager transactionManager, EducGradBatchGraduationApiConstants constants, SkipSQLTransactionExceptionsListener skipListener) { + public Step masterStepRegGrad(JobRepository jobRepository, PlatformTransactionManager transactionManager, EducGradBatchGraduationApiConstants constants) { + Step step = graduationJobStep(jobRepository, transactionManager, constants); return new StepBuilder("masterStepRegGrad", jobRepository) - .partitioner(graduationJobStep(jobRepository, transactionManager, skipListener, constants).getName(), partitionerRegGrad()) - .step(graduationJobStep(jobRepository, transactionManager, skipListener, constants)) + .partitioner(step.getName(), partitionerRegGrad()) + .step(step) .gridSize(constants.getNumberOfPartitions()) .taskExecutor(taskExecutor()) .build(); } @Bean - public Step masterStepRegGradError(JobRepository jobRepository, PlatformTransactionManager transactionManager, EducGradBatchGraduationApiConstants constants, SkipSQLTransactionExceptionsListener skipListener) { + public Step masterStepRegGradError(JobRepository jobRepository, PlatformTransactionManager transactionManager, EducGradBatchGraduationApiConstants constants) { + Step step = graduationJobErrorStep(jobRepository, transactionManager, constants); return new StepBuilder("masterStepRegGradError", jobRepository) - .partitioner(graduationJobErrorStep(jobRepository, transactionManager, skipListener, constants).getName(), partitionerRegGradRetry()) - .step(graduationJobErrorStep(jobRepository, transactionManager, skipListener, constants)) + .partitioner(step.getName(), partitionerRegGradRetry()) + .step(step) .gridSize(constants.getNumberOfPartitions()) .taskExecutor(taskExecutor()) .build(); } @Bean - public Step masterStepRegGradErrorRetry(JobRepository jobRepository, PlatformTransactionManager transactionManager, EducGradBatchGraduationApiConstants constants, SkipSQLTransactionExceptionsListener skipListener) { + public Step masterStepRegGradErrorRetry(JobRepository jobRepository, PlatformTransactionManager transactionManager, EducGradBatchGraduationApiConstants constants) { + Step step = graduationJobErrorRetryStep(jobRepository, transactionManager, constants); return new StepBuilder("masterStepRegGradErrorRetry", jobRepository) - .partitioner(graduationJobErrorRetryStep(jobRepository, transactionManager, skipListener, constants).getName(), partitionerRegGradRetry()) - .step(graduationJobErrorRetryStep(jobRepository, transactionManager, skipListener, constants)) + .partitioner(step.getName(), partitionerRegGradRetry()) + .step(step) .gridSize(constants.getNumberOfPartitions()) .taskExecutor(taskExecutor()) .build(); @@ -119,54 +117,45 @@ public RegGradAlgPartitionerRetry partitionerRegGradRetry() { } @Bean - public Step graduationJobErrorStep(JobRepository jobRepository, PlatformTransactionManager transactionManager, SkipSQLTransactionExceptionsListener skipListener, EducGradBatchGraduationApiConstants constant) { + public Step graduationJobErrorStep(JobRepository jobRepository, PlatformTransactionManager transactionManager, EducGradBatchGraduationApiConstants constant) { return new StepBuilder("graduationJobErrorStep", jobRepository) .chunk(constant.getTransactionChunkSize(), transactionManager) .reader(itemReaderRegErrorGrad()) .processor(itemProcessorRegGrad()) .writer(itemWriterRegGrad()) - .faultTolerant() - .listener(skipListener) - .skip(Exception.class) .build(); } @Bean - public Step graduationJobErrorRetryStep(JobRepository jobRepository, PlatformTransactionManager transactionManager, SkipSQLTransactionExceptionsListener skipListener, EducGradBatchGraduationApiConstants constant) { + public Step graduationJobErrorRetryStep(JobRepository jobRepository, PlatformTransactionManager transactionManager, EducGradBatchGraduationApiConstants constant) { return new StepBuilder("graduationJobErrorRetryStep", jobRepository) .chunk(constant.getTransactionChunkSize(), transactionManager) .reader(itemReaderRegErrorRetryGrad()) .processor(itemProcessorRegGrad()) .writer(itemWriterRegGrad()) - .faultTolerant() - .listener(skipListener) - .skip(Exception.class) .build(); } @Bean - public Step graduationJobStep(JobRepository jobRepository, PlatformTransactionManager transactionManager, SkipSQLTransactionExceptionsListener skipListener, EducGradBatchGraduationApiConstants constant) { + public Step graduationJobStep(JobRepository jobRepository, PlatformTransactionManager transactionManager, EducGradBatchGraduationApiConstants constant) { return new StepBuilder("graduationJobStep", jobRepository) .chunk(constant.getTransactionChunkSize(), transactionManager) .reader(itemReaderRegGrad()) .processor(itemProcessorRegGrad()) .writer(itemWriterRegGrad()) - .faultTolerant() - .listener(skipListener) - .skip(Exception.class) .build(); } @Bean(name="GraduationBatchJob") - public Job graduationBatchJob(JobRepository jobRepository, PlatformTransactionManager transactionManager, GradRunCompletionNotificationListener listener, SkipSQLTransactionExceptionsListener skipListener, EducGradBatchGraduationApiConstants constants) { + public Job graduationBatchJob(JobRepository jobRepository, PlatformTransactionManager transactionManager, GradRunCompletionNotificationListener listener, EducGradBatchGraduationApiConstants constants) { return new JobBuilder("GraduationBatchJob", jobRepository) .incrementer(new RunIdIncrementer()) .listener(listener) - .start(masterStepRegGrad(jobRepository, transactionManager, constants, skipListener)) + .start(masterStepRegGrad(jobRepository, transactionManager, constants)) .on("*") - .to(masterStepRegGradError(jobRepository, transactionManager,constants, skipListener)) + .to(masterStepRegGradError(jobRepository, transactionManager,constants)) .on("*") - .to(masterStepRegGradErrorRetry(jobRepository, transactionManager,constants, skipListener)) + .to(masterStepRegGradErrorRetry(jobRepository, transactionManager,constants)) .on("*") .end().build() .build(); @@ -181,59 +170,62 @@ public Job graduationBatchJob(JobRepository jobRepository, PlatformTransactionMa @Bean @StepScope - public ItemProcessor itemProcessorTvrRun() { + public RunProjectedGradAlgorithmProcessor itemProcessorTvrRun() { return new RunProjectedGradAlgorithmProcessor(); } @Bean @StepScope - public ItemReader itemReaderTvrRun() { + public RecalculateProjectedGradRunReader itemReaderTvrRun() { return new RecalculateProjectedGradRunReader(); } @Bean @StepScope - public ItemReader itemReaderTvrErrorRun() { + public RecalculateProjectedGradRunErrorReader itemReaderTvrErrorRun() { return new RecalculateProjectedGradRunErrorReader(); } @Bean @StepScope - public ItemReader itemReaderTvrErrorRetryRun() { + public RecalculateProjectedGradRunErrorRetryReader itemReaderTvrErrorRetryRun() { return new RecalculateProjectedGradRunErrorRetryReader(); } @Bean @StepScope - public ItemWriter itemWriterTvrRun() { + public TvrRunBatchPerformanceWriter itemWriterTvrRun() { return new TvrRunBatchPerformanceWriter(); } @Bean - public Step masterStepTvrRun(JobRepository jobRepository, PlatformTransactionManager transactionManager, EducGradBatchGraduationApiConstants constants, SkipSQLTransactionExceptionsListener skipListener) { + public Step masterStepTvrRun(JobRepository jobRepository, PlatformTransactionManager transactionManager, EducGradBatchGraduationApiConstants constants) { + Step step = tvrJobStep(jobRepository, transactionManager, constants); return new StepBuilder("masterStepTvrRun", jobRepository) - .partitioner(tvrJobStep(jobRepository, transactionManager,skipListener, constants).getName(), partitionerTvrRun()) - .step(tvrJobStep(jobRepository, transactionManager,skipListener, constants)) + .partitioner(step.getName(), partitionerTvrRun()) + .step(step) .gridSize(constants.getNumberOfPartitions()) .taskExecutor(taskExecutor()) .build(); } @Bean - public Step masterStepTvrRunError(JobRepository jobRepository, PlatformTransactionManager transactionManager, EducGradBatchGraduationApiConstants constants, SkipSQLTransactionExceptionsListener skipListener) { + public Step masterStepTvrRunError(JobRepository jobRepository, PlatformTransactionManager transactionManager, EducGradBatchGraduationApiConstants constants) { + Step step = tvrJobErrorStep(jobRepository, transactionManager, constants); return new StepBuilder("masterStepTvrRunError", jobRepository) - .partitioner(tvrJobErrorStep(jobRepository, transactionManager,skipListener, constants).getName(), partitionerTvrRunRetry()) - .step(tvrJobErrorStep(jobRepository, transactionManager,skipListener, constants)) + .partitioner(step.getName(), partitionerTvrRunRetry()) + .step(step) .gridSize(constants.getNumberOfPartitions()) .taskExecutor(taskExecutor()) .build(); } @Bean - public Step masterStepTvrRunErrorRetry(JobRepository jobRepository, PlatformTransactionManager transactionManager, EducGradBatchGraduationApiConstants constants, SkipSQLTransactionExceptionsListener skipListener) { + public Step masterStepTvrRunErrorRetry(JobRepository jobRepository, PlatformTransactionManager transactionManager, EducGradBatchGraduationApiConstants constants) { + Step step = tvrJobErrorRetryStep(jobRepository, transactionManager, constants); return new StepBuilder("masterStepTvrRunErrorRetry", jobRepository) - .partitioner(tvrJobErrorRetryStep(jobRepository, transactionManager,skipListener, constants).getName(), partitionerTvrRunRetry()) - .step(tvrJobErrorRetryStep(jobRepository, transactionManager,skipListener, constants)) + .partitioner(step.getName(), partitionerTvrRunRetry()) + .step(step) .gridSize(constants.getNumberOfPartitions()) .taskExecutor(taskExecutor()) .build(); @@ -253,54 +245,45 @@ public TvrRunPartitionerRetry partitionerTvrRunRetry() { @Bean - public Step tvrJobStep(JobRepository jobRepository, PlatformTransactionManager transactionManager, SkipSQLTransactionExceptionsListener skipListener, EducGradBatchGraduationApiConstants constant) { + public Step tvrJobStep(JobRepository jobRepository, PlatformTransactionManager transactionManager, EducGradBatchGraduationApiConstants constant) { return new StepBuilder("tvrJobStep", jobRepository) .chunk(constant.getTransactionChunkSize(), transactionManager) .reader(itemReaderTvrRun()) .processor(itemProcessorTvrRun()) .writer(itemWriterTvrRun()) - .faultTolerant() - .listener(skipListener) - .skip(Exception.class) .build(); } @Bean - public Step tvrJobErrorStep(JobRepository jobRepository, PlatformTransactionManager transactionManager, SkipSQLTransactionExceptionsListener skipListener, EducGradBatchGraduationApiConstants constant) { + public Step tvrJobErrorStep(JobRepository jobRepository, PlatformTransactionManager transactionManager, EducGradBatchGraduationApiConstants constant) { return new StepBuilder("tvrJobErrorStep", jobRepository) .chunk(constant.getTransactionChunkSize(), transactionManager) .reader(itemReaderTvrErrorRun()) .processor(itemProcessorTvrRun()) .writer(itemWriterTvrRun()) - .faultTolerant() - .listener(skipListener) - .skip(Exception.class) .build(); } @Bean - public Step tvrJobErrorRetryStep(JobRepository jobRepository, PlatformTransactionManager transactionManager, SkipSQLTransactionExceptionsListener skipListener, EducGradBatchGraduationApiConstants constant) { + public Step tvrJobErrorRetryStep(JobRepository jobRepository, PlatformTransactionManager transactionManager, EducGradBatchGraduationApiConstants constant) { return new StepBuilder("tvrJobErrorRetryStep", jobRepository) .chunk(constant.getTransactionChunkSize(), transactionManager) .reader(itemReaderTvrErrorRetryRun()) .processor(itemProcessorTvrRun()) .writer(itemWriterTvrRun()) - .faultTolerant() - .listener(skipListener) - .skip(Exception.class) .build(); } @Bean(name="tvrBatchJob") - public Job tvrBatchJob(JobRepository jobRepository, PlatformTransactionManager transactionManager, TvrRunJobCompletionNotificationListener listener, SkipSQLTransactionExceptionsListener skipListener, EducGradBatchGraduationApiConstants constants) { + public Job tvrBatchJob(JobRepository jobRepository, PlatformTransactionManager transactionManager, TvrRunJobCompletionNotificationListener listener, EducGradBatchGraduationApiConstants constants) { return new JobBuilder("tvrBatchJob", jobRepository) .incrementer(new RunIdIncrementer()) .listener(listener) - .start(masterStepTvrRun(jobRepository, transactionManager,constants,skipListener)) + .start(masterStepTvrRun(jobRepository, transactionManager,constants)) .on("*") - .to(masterStepTvrRunError(jobRepository, transactionManager,constants,skipListener)) + .to(masterStepTvrRunError(jobRepository, transactionManager,constants)) .on("*") - .to(masterStepTvrRunErrorRetry(jobRepository, transactionManager,constants,skipListener)) + .to(masterStepTvrRunErrorRetry(jobRepository, transactionManager,constants)) .on("*") .end().build() .build(); @@ -314,49 +297,52 @@ public Job tvrBatchJob(JobRepository jobRepository, PlatformTransactionManager t @Bean @StepScope - public ItemProcessor itemProcessorSpcRegGrad() { + public RunSpecialGradAlgorithmProcessor itemProcessorSpcRegGrad() { return new RunSpecialGradAlgorithmProcessor(); } @Bean @StepScope - public ItemReader itemReaderSpcRegGrad() { + public SpecialGradRunStudentReader itemReaderSpcRegGrad() { return new SpecialGradRunStudentReader(); } @Bean @StepScope - public ItemWriter itemWriterSpcRegGrad() { + public RegGradAlgBatchPerformanceWriter itemWriterSpcRegGrad() { return new RegGradAlgBatchPerformanceWriter(); } @Bean - public Step masterStepSpcRegGrad(JobRepository jobRepository, PlatformTransactionManager transactionManager, EducGradBatchGraduationApiConstants constants, SkipSQLTransactionExceptionsListener skipListener) { + public Step masterStepSpcRegGrad(JobRepository jobRepository, PlatformTransactionManager transactionManager, EducGradBatchGraduationApiConstants constants) { + Step step = slaveSpcRegGradStep(jobRepository, transactionManager, constants); return new StepBuilder("masterStepSpcRegGrad", jobRepository) - .partitioner(slaveSpcRegGradStep(jobRepository, transactionManager,skipListener, constants).getName(), partitionerSpcRegGrad()) - .step(slaveSpcRegGradStep(jobRepository, transactionManager,skipListener, constants)) + .partitioner(step.getName(), partitionerSpcRegGrad()) + .step(step) .gridSize(constants.getNumberOfPartitions()) .taskExecutor(taskExecutor()) .build(); } @Bean - public Step masterStepSpcRegGradError(JobRepository jobRepository, PlatformTransactionManager transactionManager, EducGradBatchGraduationApiConstants constants, SkipSQLTransactionExceptionsListener skipListener) { + public Step masterStepSpcRegGradError(JobRepository jobRepository, PlatformTransactionManager transactionManager, EducGradBatchGraduationApiConstants constants) { + Step step = slaveSpcRegGradErrorStep(jobRepository, transactionManager, constants); return new StepBuilder("masterStepSpcRegGradError", jobRepository) - .partitioner(slaveSpcRegGradErrorStep(jobRepository, transactionManager,skipListener, constants).getName(), partitionerSpcRegGradRetry()) - .step(slaveSpcRegGradErrorStep(jobRepository, transactionManager,skipListener, constants)) + .partitioner(step.getName(), partitionerSpcRegGradRetry()) + .step(step) .gridSize(constants.getNumberOfPartitions()) .taskExecutor(taskExecutor()) .build(); } @Bean - public Step masterStepSpcRegGradErrorRetry(JobRepository jobRepository, PlatformTransactionManager transactionManager, EducGradBatchGraduationApiConstants constants, SkipSQLTransactionExceptionsListener skipListener) { + public Step masterStepSpcRegGradErrorRetry(JobRepository jobRepository, PlatformTransactionManager transactionManager, EducGradBatchGraduationApiConstants constants) { + Step step = slaveSpcRegGradErrorRetryStep(jobRepository, transactionManager, constants); return new StepBuilder("masterStepSpcRegGradErrorRetry", jobRepository) - .partitioner(slaveSpcRegGradErrorRetryStep(jobRepository, transactionManager,skipListener, constants).getName(), partitionerSpcRegGradRetry()) - .step(slaveSpcRegGradErrorRetryStep(jobRepository, transactionManager,skipListener, constants)) + .partitioner(step.getName(), partitionerSpcRegGradRetry()) + .step(step) .gridSize(constants.getNumberOfPartitions()) .taskExecutor(taskExecutor()) .build(); @@ -375,54 +361,45 @@ public SpcRegGradAlgPartitionerRetry partitionerSpcRegGradRetry() { } @Bean - public Step slaveSpcRegGradStep(JobRepository jobRepository, PlatformTransactionManager transactionManager, SkipSQLTransactionExceptionsListener skipListener, EducGradBatchGraduationApiConstants constant) { + public Step slaveSpcRegGradStep(JobRepository jobRepository, PlatformTransactionManager transactionManager, EducGradBatchGraduationApiConstants constant) { return new StepBuilder("slaveStepSpcRegGrad", jobRepository) .chunk(constant.getTransactionChunkSize(), transactionManager) .reader(itemReaderSpcRegGrad()) .processor(itemProcessorSpcRegGrad()) .writer(itemWriterSpcRegGrad()) - .faultTolerant() - .listener(skipListener) - .skip(Exception.class) .build(); } @Bean - public Step slaveSpcRegGradErrorStep(JobRepository jobRepository, PlatformTransactionManager transactionManager, SkipSQLTransactionExceptionsListener skipListener, EducGradBatchGraduationApiConstants constant) { + public Step slaveSpcRegGradErrorStep(JobRepository jobRepository, PlatformTransactionManager transactionManager, EducGradBatchGraduationApiConstants constant) { return new StepBuilder("slaveSpcRegGradErrorStep", jobRepository) .chunk(constant.getTransactionChunkSize(), transactionManager) .reader(itemReaderSpcRegGrad()) .processor(itemProcessorSpcRegGrad()) .writer(itemWriterSpcRegGrad()) - .faultTolerant() - .listener(skipListener) - .skip(Exception.class) .build(); } @Bean - public Step slaveSpcRegGradErrorRetryStep(JobRepository jobRepository, PlatformTransactionManager transactionManager, SkipSQLTransactionExceptionsListener skipListener, EducGradBatchGraduationApiConstants constant) { + public Step slaveSpcRegGradErrorRetryStep(JobRepository jobRepository, PlatformTransactionManager transactionManager, EducGradBatchGraduationApiConstants constant) { return new StepBuilder("slaveSpcRegGradErrorRetryStep", jobRepository) .chunk(constant.getTransactionChunkSize(), transactionManager) .reader(itemReaderSpcRegGrad()) .processor(itemProcessorSpcRegGrad()) .writer(itemWriterSpcRegGrad()) - .faultTolerant() - .listener(skipListener) - .skip(Exception.class) .build(); } @Bean(name="SpecialGraduationBatchJob") - public Job specialGraduationBatchJob(JobRepository jobRepository, PlatformTransactionManager transactionManager, SpecialRunCompletionNotificationListener listener, SkipSQLTransactionExceptionsListener skipListener, EducGradBatchGraduationApiConstants constants) { + public Job specialGraduationBatchJob(JobRepository jobRepository, PlatformTransactionManager transactionManager, SpecialRunCompletionNotificationListener listener, EducGradBatchGraduationApiConstants constants) { return new JobBuilder("SpecialGraduationBatchJob", jobRepository) .incrementer(new RunIdIncrementer()) .listener(listener) - .start(masterStepSpcRegGrad(jobRepository, transactionManager,constants,skipListener)) + .start(masterStepSpcRegGrad(jobRepository, transactionManager,constants)) .on("*") - .to(masterStepSpcRegGradError(jobRepository, transactionManager,constants,skipListener)) + .to(masterStepSpcRegGradError(jobRepository, transactionManager,constants)) .on("*") - .to(masterStepSpcRegGradErrorRetry(jobRepository, transactionManager,constants,skipListener)) + .to(masterStepSpcRegGradErrorRetry(jobRepository, transactionManager,constants)) .on("*") .end().build() .build(); @@ -436,101 +413,95 @@ public Job specialGraduationBatchJob(JobRepository jobRepository, PlatformTransa @Bean @StepScope - public ItemProcessor itemProcessorSpcTvrRun() { + public RunSpecialProjectedGradAlgorithmProcessor itemProcessorSpcTvrRun() { return new RunSpecialProjectedGradAlgorithmProcessor(); } @Bean @StepScope - public ItemReader itemReaderSpcTvrRun() { + public SpecialProjectedGradRunReader itemReaderSpcTvrRun() { return new SpecialProjectedGradRunReader(); } @Bean @StepScope - public ItemWriter itemWriterSpcTvrRun() { + public TvrRunBatchPerformanceWriter itemWriterSpcTvrRun() { return new TvrRunBatchPerformanceWriter(); } @Bean - public Step masterStepSpcTvrRun(JobRepository jobRepository, PlatformTransactionManager transactionManager, EducGradBatchGraduationApiConstants constants, SkipSQLTransactionExceptionsListener skipListener) { + public Step masterStepSpcTvrRun(JobRepository jobRepository, PlatformTransactionManager transactionManager, EducGradBatchGraduationApiConstants constants) { + Step step = slaveStepSpcTvrRun(jobRepository, transactionManager, constants); return new StepBuilder("masterStepSpcTvrRun", jobRepository) - .partitioner(slaveStepSpcTvrRun(jobRepository, transactionManager,skipListener, constants).getName(), partitionerSpcRegGrad()) - .step(slaveStepSpcTvrRun(jobRepository, transactionManager,skipListener, constants)) + .partitioner(step.getName(), partitionerSpcRegGrad()) + .step(step) .gridSize(constants.getNumberOfPartitions()) .taskExecutor(taskExecutor()) .build(); } @Bean - public Step masterStepSpcTvrRunError(JobRepository jobRepository, PlatformTransactionManager transactionManager, EducGradBatchGraduationApiConstants constants, SkipSQLTransactionExceptionsListener skipListener) { + public Step masterStepSpcTvrRunError(JobRepository jobRepository, PlatformTransactionManager transactionManager, EducGradBatchGraduationApiConstants constants) { + Step step = slaveStepSpcTvrRunError(jobRepository, transactionManager, constants); return new StepBuilder("masterStepSpcTvrRunError", jobRepository) - .partitioner(slaveStepSpcTvrRunError(jobRepository, transactionManager,skipListener, constants).getName(), partitionerSpcRegGradRetry()) - .step(slaveStepSpcTvrRunError(jobRepository, transactionManager,skipListener, constants)) + .partitioner(step.getName(), partitionerSpcRegGradRetry()) + .step(step) .gridSize(constants.getNumberOfPartitions()) .taskExecutor(taskExecutor()) .build(); } @Bean - public Step masterStepSpcTvrRunErrorRetry(JobRepository jobRepository, PlatformTransactionManager transactionManager, EducGradBatchGraduationApiConstants constants, SkipSQLTransactionExceptionsListener skipListener) { + public Step masterStepSpcTvrRunErrorRetry(JobRepository jobRepository, PlatformTransactionManager transactionManager, EducGradBatchGraduationApiConstants constants) { + Step step = slaveStepSpcTvrRunErrorRetry(jobRepository, transactionManager, constants); return new StepBuilder("masterStepSpcTvrRunErrorRetry", jobRepository) - .partitioner(slaveStepSpcTvrRunErrorRetry(jobRepository, transactionManager,skipListener, constants).getName(), partitionerSpcRegGradRetry()) - .step(slaveStepSpcTvrRunErrorRetry(jobRepository, transactionManager,skipListener, constants)) + .partitioner(step.getName(), partitionerSpcRegGradRetry()) + .step(step) .gridSize(constants.getNumberOfPartitions()) .taskExecutor(taskExecutor()) .build(); } @Bean - public Step slaveStepSpcTvrRun(JobRepository jobRepository, PlatformTransactionManager transactionManager, SkipSQLTransactionExceptionsListener skipListener, EducGradBatchGraduationApiConstants constant) { + public Step slaveStepSpcTvrRun(JobRepository jobRepository, PlatformTransactionManager transactionManager, EducGradBatchGraduationApiConstants constant) { return new StepBuilder("slaveStepSpcTvrRun", jobRepository) .chunk(constant.getTransactionChunkSize(), transactionManager) .reader(itemReaderSpcTvrRun()) .processor(itemProcessorSpcTvrRun()) .writer(itemWriterSpcTvrRun()) - .faultTolerant() - .listener(skipListener) - .skip(Exception.class) .build(); } @Bean - public Step slaveStepSpcTvrRunError(JobRepository jobRepository, PlatformTransactionManager transactionManager, SkipSQLTransactionExceptionsListener skipListener, EducGradBatchGraduationApiConstants constant) { + public Step slaveStepSpcTvrRunError(JobRepository jobRepository, PlatformTransactionManager transactionManager, EducGradBatchGraduationApiConstants constant) { return new StepBuilder("slaveStepSpcTvrRunError", jobRepository) .chunk(constant.getTransactionChunkSize(), transactionManager) .reader(itemReaderSpcTvrRun()) .processor(itemProcessorSpcTvrRun()) .writer(itemWriterSpcTvrRun()) - .faultTolerant() - .listener(skipListener) - .skip(Exception.class) .build(); } @Bean - public Step slaveStepSpcTvrRunErrorRetry(JobRepository jobRepository, PlatformTransactionManager transactionManager, SkipSQLTransactionExceptionsListener skipListener, EducGradBatchGraduationApiConstants constant) { + public Step slaveStepSpcTvrRunErrorRetry(JobRepository jobRepository, PlatformTransactionManager transactionManager, EducGradBatchGraduationApiConstants constant) { return new StepBuilder("slaveStepSpcTvrRunErrorRetry", jobRepository) .chunk(constant.getTransactionChunkSize(), transactionManager) .reader(itemReaderSpcTvrRun()) .processor(itemProcessorSpcTvrRun()) .writer(itemWriterSpcTvrRun()) - .faultTolerant() - .listener(skipListener) - .skip(Exception.class) .build(); } @Bean(name="SpecialTvrRunBatchJob") - public Job specialTvrRunBatchJob(JobRepository jobRepository, PlatformTransactionManager transactionManager, SpecialRunCompletionNotificationListener listener, SkipSQLTransactionExceptionsListener skipListener, EducGradBatchGraduationApiConstants constants) { + public Job specialTvrRunBatchJob(JobRepository jobRepository, PlatformTransactionManager transactionManager, SpecialRunCompletionNotificationListener listener, EducGradBatchGraduationApiConstants constants) { return new JobBuilder("SpecialTvrRunBatchJob", jobRepository) .incrementer(new RunIdIncrementer()) .listener(listener) - .start(masterStepSpcTvrRun(jobRepository, transactionManager,constants,skipListener)) + .start(masterStepSpcTvrRun(jobRepository, transactionManager,constants)) .on("*") - .to(masterStepSpcTvrRunError(jobRepository, transactionManager,constants,skipListener)) + .to(masterStepSpcTvrRunError(jobRepository, transactionManager,constants)) .on("*") - .to(masterStepSpcTvrRunErrorRetry(jobRepository, transactionManager,constants,skipListener)) + .to(masterStepSpcTvrRunErrorRetry(jobRepository, transactionManager,constants)) .on("*") .end().build() .build(); @@ -544,37 +515,37 @@ public Job specialTvrRunBatchJob(JobRepository jobRepository, PlatformTransactio @Bean @StepScope - public ItemProcessor itemProcessorDisRun() { + public DistributionRunProcessor itemProcessorDisRun() { return new DistributionRunProcessor(); } @Bean @StepScope - public ItemProcessor> itemProcessorDisRunYearlyNonGradByMincode() { + public DistributionRunYearlyNonGradProcessor itemProcessorDisRunYearlyNonGradByMincode() { return new DistributionRunYearlyNonGradProcessor(); } @Bean @StepScope - public ItemReader itemReaderDisRun() { + public DistributionRunStudentCredentialsReader itemReaderDisRun() { return new DistributionRunStudentCredentialsReader(); } @Bean @StepScope - public ItemReader itemReaderDisRunYearlyNonGrad() { + public DistributionRunYearlyNonGradReader itemReaderDisRunYearlyNonGrad() { return new DistributionRunYearlyNonGradReader(); } @Bean @StepScope - public ItemWriter itemWriterDisRun() { + public DistributionRunWriter itemWriterDisRun() { return new DistributionRunWriter(); } @Bean @StepScope - public ItemWriter> itemWriterDisRunYearlyNonGrad() { + public DistributionRunYearlyNonGradWriter itemWriterDisRunYearlyNonGrad() { return new DistributionRunYearlyNonGradWriter(); } @@ -759,19 +730,19 @@ public Job distributionBatchJobUserReq(JobRepository jobRepository, PlatformTran @Bean @StepScope - public ItemProcessor itemProcessorBlankDisRun() { + public BlankDistributionRunProcessor itemProcessorBlankDisRun() { return new BlankDistributionRunProcessor(); } @Bean @StepScope - public ItemReader itemReaderBlankDisRun() { + public BlankDistributionRunReader itemReaderBlankDisRun() { return new BlankDistributionRunReader(); } @Bean @StepScope - public ItemWriter itemWriterBlankDisRun() { + public BlankDistributionRunWriter itemWriterBlankDisRun() { return new BlankDistributionRunWriter(); } @@ -821,19 +792,19 @@ public Job blankDistributionBatchJobUserReq(JobRepository jobRepository, Platfor @Bean @StepScope - public ItemProcessor itemProcessorPsiDisRun() { + public PsiDistributionRunProcessor itemProcessorPsiDisRun() { return new PsiDistributionRunProcessor(); } @Bean @StepScope - public ItemReader itemReaderPsiDisRun() { + public PsiDistributionRunReader itemReaderPsiDisRun() { return new PsiDistributionRunReader(); } @Bean @StepScope - public ItemWriter itemWriterPsiDisRun() { + public PsiDistributionRunWriter itemWriterPsiDisRun() { return new PsiDistributionRunWriter(); } @@ -886,19 +857,19 @@ public RegenerateCertificatePartitioner partitionerCertRegen() { @Bean @StepScope - public ItemReader itemReaderCertRegen() { + public RegenerateCertificateReader itemReaderCertRegen() { return new RegenerateCertificateReader(); } @Bean @StepScope - public ItemWriter itemWriterCertRegen() { + public RegenerateCertificateRunWriter itemWriterCertRegen() { return new RegenerateCertificateRunWriter(); } @Bean @StepScope - public ItemProcessor itemProcessorCertRegen() { + public RunCertificateRegenerationProcessor itemProcessorCertRegen() { return new RunCertificateRegenerationProcessor(); } @@ -947,19 +918,19 @@ public EDWSnapshotSchoolPartitioner partitionerEDWSnapshotSchool() { @Bean @StepScope - public ItemReader itemReaderEDWSnapshotSchool() { + public EDWSnapshotSchoolReader itemReaderEDWSnapshotSchool() { return new EDWSnapshotSchoolReader(); } @Bean @StepScope - public ItemWriter>>> itemWriterEDWSnapshotSchool() { + public EDWSnapshotSchoolWriter itemWriterEDWSnapshotSchool() { return new EDWSnapshotSchoolWriter(); } @Bean @StepScope - public ItemProcessor>>> itemProcessorEDWSnapshotSchool() { + public EDWSnapshotSchoolProcessor itemProcessorEDWSnapshotSchool() { return new EDWSnapshotSchoolProcessor(); } @@ -994,19 +965,19 @@ public EDWSnapshotPartitioner partitionerEDWSnapshot() { @Bean @StepScope - public ItemReader itemReaderEDWSnapshot() { + public EDWSnapshotReader itemReaderEDWSnapshot() { return new EDWSnapshotReader(); } @Bean @StepScope - public ItemWriter itemWriterEDWSnapshot() { + public EDWSnapshotWriter itemWriterEDWSnapshot() { return new EDWSnapshotWriter(); } @Bean @StepScope - public ItemProcessor itemProcessorEDWSnapshot() { + public EDWSnapshotProcessor itemProcessorEDWSnapshot() { return new EDWSnapshotProcessor(); } diff --git a/api/src/main/java/ca/bc/gov/educ/api/batchgraduation/controller/JobLauncherController.java b/api/src/main/java/ca/bc/gov/educ/api/batchgraduation/controller/JobLauncherController.java index 1b72e427..ca96c610 100644 --- a/api/src/main/java/ca/bc/gov/educ/api/batchgraduation/controller/JobLauncherController.java +++ b/api/src/main/java/ca/bc/gov/educ/api/batchgraduation/controller/JobLauncherController.java @@ -91,11 +91,9 @@ public class JobLauncherController { private final GradBatchHistoryService gradBatchHistoryService; private final DistributionRunStatusUpdateProcessor distributionRunStatusUpdateProcessor; - @Autowired - JsonTransformer jsonTransformer; + private final JsonTransformer jsonTransformer; - @Autowired - GradSchoolOfRecordFilter gradSchoolOfRecordFilter; + private final GradSchoolOfRecordFilter gradSchoolOfRecordFilter; @Autowired public JobLauncherController( @@ -106,7 +104,9 @@ public JobLauncherController( RestUtils restUtils, GradDashboardService gradDashboardService, GradBatchHistoryService gradBatchHistoryService, - DistributionRunStatusUpdateProcessor distributionRunStatusUpdateProcessor) { + DistributionRunStatusUpdateProcessor distributionRunStatusUpdateProcessor, + JsonTransformer jsonTransformer, + GradSchoolOfRecordFilter gradSchoolOfRecordFilter) { this.jobLauncher = jobLauncher; this.asyncJobLauncher = asyncJobLauncher; this.jobRegistry = jobRegistry; @@ -114,6 +114,8 @@ public JobLauncherController( this.gradDashboardService = gradDashboardService; this.gradBatchHistoryService = gradBatchHistoryService; this.distributionRunStatusUpdateProcessor = distributionRunStatusUpdateProcessor; + this.jsonTransformer = jsonTransformer; + this.gradSchoolOfRecordFilter = gradSchoolOfRecordFilter; } @GetMapping(EducGradBatchGraduationApiConstants.EXECUTE_REG_GRAD_BATCH_JOB) diff --git a/api/src/main/java/ca/bc/gov/educ/api/batchgraduation/entity/BatchStatusEnum.java b/api/src/main/java/ca/bc/gov/educ/api/batchgraduation/entity/BatchStatusEnum.java index 70501446..70d5f48b 100644 --- a/api/src/main/java/ca/bc/gov/educ/api/batchgraduation/entity/BatchStatusEnum.java +++ b/api/src/main/java/ca/bc/gov/educ/api/batchgraduation/entity/BatchStatusEnum.java @@ -3,5 +3,10 @@ public enum BatchStatusEnum { STARTED, COMPLETED, - FAILED; + FAILED, + STARTING, + STOPPING, + STOPPED, + ABANDONED, + UNKNOWN; } diff --git a/api/src/main/java/ca/bc/gov/educ/api/batchgraduation/listener/SpecialRunCompletionNotificationListener.java b/api/src/main/java/ca/bc/gov/educ/api/batchgraduation/listener/SpecialRunCompletionNotificationListener.java index 9fbd7282..d87767e1 100644 --- a/api/src/main/java/ca/bc/gov/educ/api/batchgraduation/listener/SpecialRunCompletionNotificationListener.java +++ b/api/src/main/java/ca/bc/gov/educ/api/batchgraduation/listener/SpecialRunCompletionNotificationListener.java @@ -1,6 +1,5 @@ package ca.bc.gov.educ.api.batchgraduation.listener; -import ca.bc.gov.educ.api.batchgraduation.model.StudentSearchRequest; import ca.bc.gov.educ.api.batchgraduation.rest.RestUtils; import ca.bc.gov.educ.api.batchgraduation.util.JsonTransformer; import org.slf4j.Logger; @@ -8,16 +7,11 @@ import org.springframework.batch.core.BatchStatus; import org.springframework.batch.core.JobExecution; import org.springframework.batch.core.JobParameters; -import org.springframework.batch.core.JobParametersBuilder; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; import java.time.ZoneId; import java.util.Date; -import java.util.List; -import java.util.UUID; - -import static ca.bc.gov.educ.api.batchgraduation.util.EducGradBatchGraduationApiConstants.SEARCH_REQUEST; @Component public class SpecialRunCompletionNotificationListener extends BaseRunCompletionNotificationListener { diff --git a/api/src/main/java/ca/bc/gov/educ/api/batchgraduation/processor/RunProjectedGradAlgorithmProcessor.java b/api/src/main/java/ca/bc/gov/educ/api/batchgraduation/processor/RunProjectedGradAlgorithmProcessor.java index f8e2b2ae..3da79a0c 100644 --- a/api/src/main/java/ca/bc/gov/educ/api/batchgraduation/processor/RunProjectedGradAlgorithmProcessor.java +++ b/api/src/main/java/ca/bc/gov/educ/api/batchgraduation/processor/RunProjectedGradAlgorithmProcessor.java @@ -3,6 +3,8 @@ import ca.bc.gov.educ.api.batchgraduation.model.GraduationStudentRecord; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import org.springframework.lang.NonNull; +import org.springframework.lang.Nullable; import java.util.UUID; @@ -11,7 +13,8 @@ public class RunProjectedGradAlgorithmProcessor extends BaseProcessor { private static final Logger LOGGER = LoggerFactory.getLogger(RunProjectedGradAlgorithmProcessor.class); @Override - public GraduationStudentRecord process(UUID key) throws Exception { + @Nullable + public GraduationStudentRecord process(@NonNull UUID key) throws Exception { GraduationStudentRecord item = getItem(key); if (item != null) { LOGGER.info("Processing partitionData = {}", item.getProgram()); diff --git a/api/src/main/java/ca/bc/gov/educ/api/batchgraduation/processor/RunRegularGradAlgorithmProcessor.java b/api/src/main/java/ca/bc/gov/educ/api/batchgraduation/processor/RunRegularGradAlgorithmProcessor.java index 41d6fc0a..65c78312 100644 --- a/api/src/main/java/ca/bc/gov/educ/api/batchgraduation/processor/RunRegularGradAlgorithmProcessor.java +++ b/api/src/main/java/ca/bc/gov/educ/api/batchgraduation/processor/RunRegularGradAlgorithmProcessor.java @@ -3,6 +3,8 @@ import ca.bc.gov.educ.api.batchgraduation.model.GraduationStudentRecord; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import org.springframework.lang.NonNull; +import org.springframework.lang.Nullable; import java.util.UUID; @@ -11,9 +13,9 @@ public class RunRegularGradAlgorithmProcessor extends BaseProcessor { private static final Logger LOGGER = LoggerFactory.getLogger(RunRegularGradAlgorithmProcessor.class); @Override - public GraduationStudentRecord process(UUID key) throws Exception { + @Nullable + public GraduationStudentRecord process(@NonNull UUID key) throws Exception { GraduationStudentRecord item = getItem(key); -// Thread.sleep(60000); if (item != null) { LOGGER.info("Processing partitionData = {}", item.getProgram()); summaryDTO.setBatchId(batchId); diff --git a/api/src/main/java/ca/bc/gov/educ/api/batchgraduation/processor/RunSpecialGradAlgorithmProcessor.java b/api/src/main/java/ca/bc/gov/educ/api/batchgraduation/processor/RunSpecialGradAlgorithmProcessor.java index a4567e0d..20dc93ed 100644 --- a/api/src/main/java/ca/bc/gov/educ/api/batchgraduation/processor/RunSpecialGradAlgorithmProcessor.java +++ b/api/src/main/java/ca/bc/gov/educ/api/batchgraduation/processor/RunSpecialGradAlgorithmProcessor.java @@ -3,6 +3,8 @@ import ca.bc.gov.educ.api.batchgraduation.model.GraduationStudentRecord; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import org.springframework.lang.NonNull; +import org.springframework.lang.Nullable; import java.util.UUID; @@ -11,7 +13,8 @@ public class RunSpecialGradAlgorithmProcessor extends BaseProcessor { private static final Logger LOGGER = LoggerFactory.getLogger(RunSpecialGradAlgorithmProcessor.class); @Override - public GraduationStudentRecord process(UUID key) throws Exception { + @Nullable + public GraduationStudentRecord process(@NonNull UUID key) throws Exception { GraduationStudentRecord item = getItem(key); if (item != null) { LOGGER.info("Processing partitionData = {}", item.getProgram()); diff --git a/api/src/main/java/ca/bc/gov/educ/api/batchgraduation/processor/RunSpecialProjectedGradAlgorithmProcessor.java b/api/src/main/java/ca/bc/gov/educ/api/batchgraduation/processor/RunSpecialProjectedGradAlgorithmProcessor.java index b4dddbc5..49047f8c 100644 --- a/api/src/main/java/ca/bc/gov/educ/api/batchgraduation/processor/RunSpecialProjectedGradAlgorithmProcessor.java +++ b/api/src/main/java/ca/bc/gov/educ/api/batchgraduation/processor/RunSpecialProjectedGradAlgorithmProcessor.java @@ -3,6 +3,8 @@ import ca.bc.gov.educ.api.batchgraduation.model.GraduationStudentRecord; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import org.springframework.lang.NonNull; +import org.springframework.lang.Nullable; import java.util.UUID; @@ -11,7 +13,8 @@ public class RunSpecialProjectedGradAlgorithmProcessor extends BaseProcessor { private static final Logger LOGGER = LoggerFactory.getLogger(RunSpecialProjectedGradAlgorithmProcessor.class); @Override - public GraduationStudentRecord process(UUID key) throws Exception { + @Nullable + public GraduationStudentRecord process(@NonNull UUID key) throws Exception { GraduationStudentRecord item = getItem(key); if (item != null) { LOGGER.info("Processing partitionData = {}", item.getProgram()); diff --git a/api/src/main/java/ca/bc/gov/educ/api/batchgraduation/writer/BaseWriter.java b/api/src/main/java/ca/bc/gov/educ/api/batchgraduation/writer/BaseWriter.java index af035a04..f5f0fb6b 100644 --- a/api/src/main/java/ca/bc/gov/educ/api/batchgraduation/writer/BaseWriter.java +++ b/api/src/main/java/ca/bc/gov/educ/api/batchgraduation/writer/BaseWriter.java @@ -22,12 +22,14 @@ public abstract class BaseWriter implements ItemWriter AlgorithmSummaryDTO summaryDTO; protected void saveBatchStatus(GraduationStudentRecord item) { - if (summaryDTO.getErrors().containsKey(item.getStudentID())) { - ProcessError v = summaryDTO.getErrors().get(item.getStudentID()); - gradBatchHistoryService.updateBatchStatusForStudent(batchId, item.getStudentID(), BatchStatusEnum.FAILED, v.getReason() + "-" + v.getDetail()); - summaryDTO.getErrors().remove(item.getStudentID()); - } else { - gradBatchHistoryService.updateBatchStatusForStudent(batchId, item.getStudentID(), BatchStatusEnum.COMPLETED, null); + if (item != null) { + if (summaryDTO.getErrors().containsKey(item.getStudentID())) { + ProcessError v = summaryDTO.getErrors().get(item.getStudentID()); + gradBatchHistoryService.updateBatchStatusForStudent(batchId, item.getStudentID(), BatchStatusEnum.FAILED, v.getReason() + "-" + v.getDetail()); + summaryDTO.getErrors().remove(item.getStudentID()); + } else { + gradBatchHistoryService.updateBatchStatusForStudent(batchId, item.getStudentID(), BatchStatusEnum.COMPLETED, null); + } } } } diff --git a/api/src/main/java/ca/bc/gov/educ/api/batchgraduation/writer/TvrRunBatchPerformanceWriter.java b/api/src/main/java/ca/bc/gov/educ/api/batchgraduation/writer/TvrRunBatchPerformanceWriter.java index 1ddc8f9a..e811b08c 100644 --- a/api/src/main/java/ca/bc/gov/educ/api/batchgraduation/writer/TvrRunBatchPerformanceWriter.java +++ b/api/src/main/java/ca/bc/gov/educ/api/batchgraduation/writer/TvrRunBatchPerformanceWriter.java @@ -1,20 +1,14 @@ package ca.bc.gov.educ.api.batchgraduation.writer; import ca.bc.gov.educ.api.batchgraduation.model.GraduationStudentRecord; -import ca.bc.gov.educ.api.batchgraduation.service.GradBatchHistoryService; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.batch.item.Chunk; -import org.springframework.beans.factory.annotation.Autowired; public class TvrRunBatchPerformanceWriter extends BaseWriter { private static final Logger LOGGER = LoggerFactory.getLogger(TvrRunBatchPerformanceWriter.class); - @SuppressWarnings("SpringJavaInjectionPointsAutowiringInspection") - @Autowired - GradBatchHistoryService gradBatchHistoryService; - @Override public void write(Chunk list) throws Exception { if(!list.isEmpty()) { diff --git a/api/src/test/java/ca/bc/gov/educ/api/batchgraduation/config/BatchConfig.java b/api/src/test/java/ca/bc/gov/educ/api/batchgraduation/config/BatchConfig.java index 5535e910..2980e601 100644 --- a/api/src/test/java/ca/bc/gov/educ/api/batchgraduation/config/BatchConfig.java +++ b/api/src/test/java/ca/bc/gov/educ/api/batchgraduation/config/BatchConfig.java @@ -7,6 +7,7 @@ import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.Profile; import org.springframework.core.task.SimpleAsyncTaskExecutor; +import org.springframework.core.task.SyncTaskExecutor; import org.springframework.scheduling.concurrent.ThreadPoolTaskScheduler; import org.springframework.stereotype.Component; @@ -24,6 +25,15 @@ public JobLauncher asyncJobLauncher(JobRepository jobRepository) throws Exceptio return jobLauncher; } + @Bean(name = "jobLauncher") + public JobLauncher jobLauncher(JobRepository jobRepository) throws Exception { + TaskExecutorJobLauncher jobLauncher = new TaskExecutorJobLauncher(); + jobLauncher.setJobRepository(jobRepository); + jobLauncher.setTaskExecutor(new SyncTaskExecutor()); + jobLauncher.afterPropertiesSet(); + return jobLauncher; + } + @Bean public ThreadPoolTaskScheduler threadPoolTaskScheduler(){ ThreadPoolTaskScheduler threadPoolTaskScheduler = new ThreadPoolTaskScheduler(); diff --git a/api/src/test/resources/application.yaml b/api/src/test/resources/application.yaml index d8ed2070..add51811 100644 --- a/api/src/test/resources/application.yaml +++ b/api/src/test/resources/application.yaml @@ -67,6 +67,8 @@ authorization: password: abc batch: + transaction: + chunk-size: 1 partitions: number: 10 regalg: diff --git a/tools/config/update-configmap.sh b/tools/config/update-configmap.sh index 5a425f78..c82e11b0 100644 --- a/tools/config/update-configmap.sh +++ b/tools/config/update-configmap.sh @@ -51,9 +51,9 @@ PARSER_CONFIG=" ########################################################### echo Creating config map "$APP_NAME"-config-map oc create -n "$OPENSHIFT_NAMESPACE"-"$envValue" configmap "$APP_NAME"-config-map \ - --from-literal=CONNECTION_TIMEOUT="60000" \ + --from-literal=CONNECTION_TIMEOUT="30000" \ --from-literal=GRAD_TRAX_API="http://educ-grad-trax-api.$OPENSHIFT_NAMESPACE-$envValue.svc.cluster.local:8080/" \ - --from-literal=MAX_LIFETIME="590000" \ + --from-literal=MAX_LIFETIME="420000" \ --from-literal=GRAD_STUDENT_API="http://educ-grad-student-api.$OPENSHIFT_NAMESPACE-$envValue.svc.cluster.local:8080/" \ --from-literal=MAXIMUM_POOL_SIZE="25" \ --from-literal=APP_LOG_LEVEL="$APP_LOG_LEVEL" \