Skip to content

Commit

Permalink
shared context
Browse files Browse the repository at this point in the history
  • Loading branch information
sungil-yu committed May 21, 2023
1 parent 5549cd9 commit f94556b
Show file tree
Hide file tree
Showing 4 changed files with 99 additions and 0 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,10 @@
import org.springframework.batch.repeat.RepeatStatus;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Profile;


@Profile("default")
@Configuration
@Slf4j
public class HelloConfiguration {
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,82 @@
package com.example.examplebatch.part2;

import lombok.extern.slf4j.Slf4j;
import org.springframework.batch.core.*;
import org.springframework.batch.core.job.builder.JobBuilder;
import org.springframework.batch.core.launch.support.RunIdIncrementer;
import org.springframework.batch.core.repository.JobRepository;
import org.springframework.batch.core.step.builder.StepBuilder;
import org.springframework.batch.item.ExecutionContext;
import org.springframework.batch.repeat.RepeatStatus;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Profile;
import org.springframework.transaction.PlatformTransactionManager;

@Profile("mysql")
@Configuration
@Slf4j
public class SharedConfig {



@Bean
public Job shareJob(JobRepository jobRepository, PlatformTransactionManager transactionManager){
return new JobBuilder("shareJob")
.incrementer(new RunIdIncrementer())
.repository(jobRepository)
.start(this.step(jobRepository, transactionManager))
.next(this.step2(jobRepository, transactionManager))
.build();
}

@Bean
public Step step(JobRepository jobRepository, PlatformTransactionManager transactionManager){
return new StepBuilder("step")
.repository(jobRepository)
.transactionManager(transactionManager)
.tasklet((contribution, chunkContext) -> {

StepExecution stepExecution = contribution.getStepExecution();
stepExecution.getExecutionContext().putString("stepKey", "step execution context");

JobExecution jobExecution = stepExecution.getJobExecution();
JobInstance jobInstance = jobExecution.getJobInstance();
jobExecution.getExecutionContext().putString("jobKey", "job execution context");

JobParameters jobParameters = jobExecution.getJobParameters();
jobParameters.getString("run.id");

log.info("jobName: {}", jobInstance.getJobName());
log.info("stepName: {}", stepExecution.getStepName());
log.info("parameter: {}", jobParameters.getString("run.id"));

return RepeatStatus.FINISHED;
})
.build();
}

@Bean
public Step step2(JobRepository jobRepository, PlatformTransactionManager transactionManager){
return new StepBuilder("step2")
.repository(jobRepository)
.transactionManager(transactionManager)
.tasklet((contribution, chunkContext) -> {

StepExecution stepExecution = contribution.getStepExecution();
ExecutionContext stepExecutionContext = stepExecution.getExecutionContext();

JobExecution jobExecution = stepExecution.getJobExecution();
ExecutionContext jobExecutionContext = jobExecution.getExecutionContext();

log.info("jobKey: {}", jobExecutionContext.getString("jobKey", "emptyJobKey"));
log.info("stepKey: {}", stepExecutionContext.getString("stepKey", "emptyStepKey"));


return RepeatStatus.FINISHED;
})
.build();
}


}
11 changes: 11 additions & 0 deletions exampleBatch/src/main/resources/application-mysql.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
spring:
datasource:
hikari:
jdbc-url: jdbc:mysql://localhost:3306/batchdb?serverTimezone=UTC&characterEncoding=UTF-8
username: root
password: q1w2e3r4
driver-class-name: com.mysql.cj.jdbc.Driver
batch:
jdbc:
initialize-schema: never

3 changes: 3 additions & 0 deletions exampleBatch/src/main/resources/application.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,3 +2,6 @@ spring:
batch:
job:
names: ${JOB_NAME:NONE}
jdbc:
initialize-schema: never

0 comments on commit f94556b

Please sign in to comment.