Job

JobLauncher
Job, JobParameters์ ํจ๊ป ๋ฐฐ์น๋ฅผ ์คํํ๋ ์ธํฐํ์ด์ค๋ก, ๋ฉ์๋๋ run ํ๊ฐ์ด๋ค.
Job์ ์คํํ๋ ์ญํ
Job.execute()ํธ์ถJob์ฌ์คํ ๊ฐ๋ฅ ์ฌ๋ถ ๊ฒ์ฆ
Job ์คํ ๋ฐฉ๋ฒ(ํ์ฌ ์ค๋ ๋์์ ์ํํ ์ง, ์ค๋ ๋ ํ์ ํตํด ์คํํ ์ง ๋ฑ)
ํ๋ผ๋ฏธํฐ ์ ํจ์ฑ ๊ฒ์ฆ
์คํ๋ง๋ถํธ๋ฅผ ์ฌ์ฉํ๋ฉด ์คํ๋ง ๋ถํธ๊ฐ ์ฆ์ Job๋ฅผ ์์ํ๋ ๊ธฐ๋ฅ์ ์ ๊ณตํด, ์ผ๋ฐ์ ์ผ๋ก๋ ์ง์ ๋ค๋ฃฐ ํ์ ์์
JobExplorer
org.springframework.batch.core.explore.JobExplorerJobRepository์ ์๋ ์ด๋ ฅ ๋ฐ์ดํฐ๋ ์ต์ ๋ฐ์ดํฐ์ ์ ๊ทผํ๋ ์์์ ์ด๋ค.JobExplorer๋ ์ก ์ ๋ณด๋ฅผ ์ป๊ธฐ์ํด ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ง์ ์ ๊ทผํ๋ค.
Set<JobExecution> findRunningJobExecutions(@Nullable String jobName)
์ข
๋ฃ ์๊ฐ์ด ์กด์ฌํ์ง ์๋ ๋ชจ๋ JobExecution ๋ฐํ
List<JobInstance> findJobInstancesByJobName(String jobName, int start, int count)
์ ๋ฌ๋ฐ์ ์ด๋ฆ์ ๊ฐ์ง JobInstance ๋ชฉ๋ก ๋ฐํ(ํ์ด์ง ์ฒ๋ฆฌ)
JobExecution getJobExecution(@Nullable Long executionId)
์ ๋ฌ๋ฐ์ ID๋ฅผ ๊ฐ์ง JobExecution ๋ฐํ
์กด์ฌํ์ง ์๋๋ค๋ฉด null ๋ฐํ
List<JobExecution> getJobExecutions(JobInstance jobInstance)
์ ๋ฌ๋ฐ์ JobInstance ์ ์ฐ๊ด๋ ๋ชจ๋ JobExecution ๋ชฉ๋ก ๋ฐํ
JobInstance getJobInstance(@Nullable Long instanceId)
์ ๋ฌ๋ฐ์ ID๋ฅผ ๊ฐ์ง JobInstance ๋ฐํ
์กด์ฌํ์ง ์์ผ๋ฉด null ๋ฐํ
List<JobInstance> getJobInstances(String jobName, int start, int count)
์ ๋ฌ๋ฐ์ ์ด๋ฆ์ ๊ฐ์ง JobInstance ๋ชฉ๋ก ๋ฐํ(ํ์ด์ง ์ฒ๋ฆฌ)
int getJobInstanceCount(@Nullable String jobName)
์ ๋ฌ๋ฐ์ ์ก ์ด๋ฆ์ผ๋ก ์์ฑ๋ JobInstance ์
List<String> getJobNames()
JobRepository์ ์ ์ฅ๋ผ ์๋ ๊ณ ์ ํ ๋ชจ๋ ์ก ์ด๋ฆ ์ํ๋ฒณ ์ ๋ฆฌ์คํธ
StepExecution getStepExecution(@Nullable Long jobExecutionId, @Nullable Long stepExecutionId)
์ ๋ฌ๋ฐ์ jobExecutionId์ stepExecutionId๋ฅผ ๊ฐ์ง StepExecution ๋ฐํ
Job

๋ฐฐ์น ์ฒ๋ฆฌ ๊ณผ์ ์ ํ๋์ ๋จ์๋ก ํํํ ๊ฐ์ฒด๋ก ์ ์ฒด ๋ฐฐ์น ์ฒ๋ฆฌ์ ์์ด ์ต์๋จ ๊ณ์ธต
Job์ ์ค๋จ์ด๋ ์ํธ์์ฉ ์์ด ์ฒ์๋ถํฐ ๋๊น์ง ์คํ๋๋ ์ฒ๋ฆฌ
Spring Batch์์ Job ๊ฐ์ฒด๋ ์ฌ๋ฌ step ์ธ์คํด์ค๋ฅผ ํฌํจํ๋ ์ปจํ ์ด๋
Job Runner
Job์ ์คํ์ job runner์์ ์์๋๋ค. job runner๋ ์ก ์ด๋ฆ๊ณผ ํ๋ผ๋ฏธํฐ๋ก ํด๋น ์ก์ ์คํ์ํค๋ ์ญํ ์ ํ๋ค.
CommandLineJobRunner: ์คํฌ๋ฆฝํธ๋ฅผ ์ด์ฉํ๊ฑฐ๋ ๋ช ๋ นํ์์ ์ง์ Job์ ์ํํ ๋ ์ฌ์ฉ์คํ๋ง ๋ฐฐ์น ์ ๊ณต
์คํ๋ง์ ๋ถํธ์คํธ๋ฉํ๋ฉฐ ์ ๋ฌ๋ฐ์ ํ๋ผ๋ฏธํฐ๋ฅผ ์ฌ์ฉํด ์์ฒญ๋ ์ก ์คํ
org.springframework.batch.core.launch.support.CommandLineJobRunner
JobRegistryBackgroundJobRunner: ์คํ๋ง์ ๋ถํธ์คํธ๋ฉ์์ ๊ธฐ๋ํ ์๋ฐ ํ๋ก์ธ์ค ๋ด์์ Quartz๋ Jmx ํํฌ์ ๊ฐ์ ์ค์ผ์ค๋ฌ๋ฅผ ์ฌ์ฉํด ์ก์ ์คํํ๋ฉดJobReistry๋ฅผ ์์ฑํ๊ฒ ๋๋ค.JobRegistryBackgroundJobRunner๋JobRegistry๋ฅผ ์์ฑํ๋ ๋ฐ ์ฌ์ฉ์คํ๋ง ๋ฐฐ์น ์ ๊ณต
org.springframework.batch.core.launch.support.JobRegistryBackgroundJobRunner
JobLauncherCommandLineRunner์คํ๋ง ๋ถํธ ์ ๊ณต
๋ณ๋์ ๊ตฌ์ฑ์ด ์๋ค๋ฉด ๊ธฐ๋ณธ์ ์ผ๋ก
ApplicationContext์ ์ ์๋ Job ํ์ ์ ๋ชจ๋ ๋น์ ๊ธฐ๋์ ์คํ
Job Runner๋ ํ๋ ์์ํฌ๊ฐ ์ ๊ณตํ๋ ํ์ค ๋ชจ๋์ด ์๋๋ฉฐ, ๊ฐ ์๋๋ฆฌ์ค๋ง๋ค ๋ค๋ฅธ ๊ตฌํ์ฒด๊ฐ ํ์ํ๊ธฐ ๋๋ฌธ์ ํ๋ ์์ํฌ๊ฐ JobRunner ์ธํฐํ์ด์ค๋ฅผ ๋ณ๋๋ก ์ ๊ณตํ์ง ์๋๋ค.
์ค์ ๋ก ์ก ๋ฌ๋๊ฐ ์๋ org.springframework.batch.core.launch.JobLauncher ์ธํฐํ์ด์ค๊ฐ ํ๋ ์์ํฌ ์คํ์์์ ์ด๋ฉฐ, ์คํ๋ง ๋ฐฐ์น๋ SimpleJobLauncher ๋ง ์ ๊ณตํ๋ค.
JobBuilderFactory
Job ๊ฐ์ฒด๋ฅผ ๋ง๋๋ ๋น๋๋ ์ฌ๋ฌ๊ฐ๊ฐ ์๋ค. JobBuilderFactory๋ ์ฌ๋ฌ ๋น๋๋ฅผ ํตํฉ ์ฒ๋ฆฌํ๋ ๊ณต์ฅ์ด๋ฉฐ, ์ํ๋ Job์ ์์ฝ๊ฒ ๋ง๋ค ์ ์๋ค.
JobBuilderFactory์ get ๋ฉ์๋๋ฅผ ํธ์ถํ ๋๋ง๋ค ์๋ก์ด JobBuilder๋ฅผ ์์ฑ๋๋ฉฐ, ์๋ก์ด JobBuilder๋ฅผ ์์ฑํ ๋๋ง๋ค JobBuilderFactory๊ฐ ์์ฑ๋ ๋ ์ฃผ์
๋ฐ์ JobRepository๋ฅผ ์ค์ ํ๋ ๊ฒ์ ๋ณผ ์ ์๋ค. ํด๋น JobBuilderFactory์์ ์์ฑ๋๋ ๋ชจ๋ JobBuilder๊ฐ ๋์ผํ JobRepository๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ด๋ค.
์ฆ, JobBuilderFactory๋ JobBuilder๋ฅผ ์์ฑํ๋ ์ญํ ๋ง ์ํํ๋ค.
JobBuilder
JobBuilder๋ ์ง์ ์ ์ผ๋ก Job์ ์์ฑํ๋ ๊ฒ์ด ์๋๋ผ ๋ณ๋์ ๊ตฌ์ฒด์ ์ธ ๋น๋๋ฅผ ์์ฑํด ๋ฐํํ๋ค. ์๋ํ๋ฉด ๊ฒฝ์ฐ์ ๋ฐ๋ผ Job ์์ฑ ๋ฐฉ๋ฒ์ด ๋ชจ๋ ๋ค๋ฅด๊ธฐ ๋๋ฌธ์ ๋ณ๋์ ๊ตฌ์ฒด์ ์ธ ๋น๋๋ฅผ ๊ตฌํํ๊ณ , ์ด๋ฅผ ํตํด Job ์์ฑ์ด ์ด๋ฃจ์ด์ง๊ฒ ํ๋ค.
์ค๊ฐ์ ๋น๋๋ฅผ ํ๋ฒ ๋ ๋ฐํํ์ฌ ์ฌ์ฉํด์ผํ์ง๋ง, ๋ฉ์๋ ์ฒด์ธ ๋ฐฉ์์ ํ์ฉํ๋ฉด ์์ฝ๊ฒ ์ฒ๋ฆฌํ ์ ์๋ค. Job์ Step / Flow ์ธ์คํด์ค์ ์ปจํ
์ด๋ ์ญํ ์ ํ๊ธฐ ๋๋ฌธ์ ์์ฑ ์ด์ ์ ์ธ์คํด์ค๋ฅผ ์ ๋ฌ ๋ฐ๋๋ค.
SimpleJobBuilder๋กJob์์ฑํ๊ธฐ
JobInstance
๋ฐฐ์น ์ฒ๋ฆฌ์์ Job์ด ์คํ๋ ๋ ํ๋์ Job ์คํ๋จ์์ด๋ค. ์๋ฅผ๋ค์ด ํ๋ฃจ์ ํ๋ฒ ๋ฐฐ์น Job์ด ์คํ๋๋ค๋ฉด, ์ด์ ์ค๋ ๊ฐ๊ฐ ์คํ๋ Job์ JobInstance๋ผ ๋ถ๋ฅธ๋ค.
JobInstance๋ ์ด๋ฆ๊ณผ ๋ ผ๋ฆฌ์ ์คํ์ ์ํด ์ ๊ณต๋๋ ๊ณ ์ ํ ์๋ณ ํ๋ผ๋ฏธํฐ ๋ชจ์์ผ๋ก ์ ์ผํ๊ฒ ์กด์ฌํ๋ค.
ExampleGenerator์ด๋ฆ์ Job์ด ๋ค๋ฅธ ํ๋ผ๋ฏธํฐ๋ก ์คํ๋ ๋๋ง๋ค ์๋ก์ดJobInstace๊ฐ ์์ฑ๋๋ค.BATCH_JOB_INSTANCEํ ์ด๋ธ๋ก ๊ด๋ฆฌBATCH_JOB_EXECUTION_PARAMS์์ ์ค์ ์๋ณ ํ๋ผ๋ฏธํฐ ๊ด๋ฆฌ
Job์ ์ฒ์ ์คํํ๋ฉด ์๋ก์ด JobInstance๋ฅผ ์ป๋๋ค. ํ์ง๋ง ์คํ์ ์คํจํ ์ดํ ๋ค์ ์คํํ๋ฉด, ์ฌ์ ํ ๋์ผํ ๋
ผ๋ฆฌ์ ์คํ(ํ๋ผ๋ฏธํฐ ๋์ผ)์ด๋ฏ๋ก ์๋ก์ด JobInstance๋ฅผ ์ป์ง ๋ชปํ๋ฉฐ, ์ค์ ์คํ์ ์ถ์ ํ๊ธฐ ์ํ ์๋ก์ด JobExecution์ ์ป์ ๊ฒ์ด๋ค.
์ฆ, JobInstance๋ ์คํจํ JobExecution๊ณผ ์๋ก ์ํํ JobExecution๊ณผ ๊ฐ์ด JobExecution์ ์ฌ๋ฌ ๊ฐ ๊ฐ์ง ์ ์๋ค.
JobExecution
JobInstance์ ๋ํ ํ ๋ฒ์ ์คํ(์ค์ ์๋)์ ๋ํ๋ด๋ ๊ฐ์ฒด์ด๋ค. JobExecution์ Job ์คํ์ ๋ํ ์ ๋ณด๋ฅผ ๋ด๊ณ ์๋ ๋๋ฉ์ธ ๊ฐ์ฒด์ด๋ฉฐ, JobInstance, ๋ฐฐ์น ์คํ ์ํ, ์์ ์๊ฐ, ๋๋ ์๊ฐ, ์ค๋ฅ ๋ฉ์ธ์ง ๋ฑ์ ์ ๋ณด๋ฅผ ๋ด๊ณ ์๋ค.
JobExecution์ Job์ด ๊ตฌ๋๋ ๋ ๋ง๋ค ๋งค๋ฒ ์๋ก์ดJobExecution์ ์ป๊ฒ๋๋ค.BATCH_JOB_EXECUTIONํ ์ด๋ธ์ ๊ฐ ๋ ์ฝ๋๋ก ์ ์ฅBATCH_JOB_EXECUTION_CONTEXTํ ์ด๋ธ์ ์ํ ๊ฐ ์ ์ฅ
JobParameters
Job์ด ์คํ๋ ๋ ํ์ํ ํ๋ผ๋ฏธํฐ๋ค์ Map ํ์
์ผ๋ก ์ง์ ํ๋ ๊ฐ์ฒด๋ก JobInstance(1:1 ๊ด๊ณ)๋ฅผ ๊ตฌ๋ถํ๋ ๊ธฐ์ค์ด ๋๊ธฐ๋ ํ๋ค.
ํ๋์ Job์ ์์ฑํ ๋ ์์ ์๊ฐ ๋ฑ์ ์ ๋ณด๋ฅผ ํ๋ผ๋ฏธํฐ๋ก ํด์ ํ๋์ JobInstance๋ฅผ ์์ฑํ๋ค. ์ฆ, 1:1 ๊ด๊ณ์ด๋ค.
ํ๋ผ๋ฏธํฐ๋
key=value๋ก ์ด๋ฃจ์ด์ ธ์๋ค.JobParameters๋
Map<String,JobParameter>์ wrapper์ ๋ถ๊ณผํ๋ค.ํ๋ผ๋ฏธํฐ ํ์ ์ String, Double, Date ํ์ ๋ ๊ธฐ๋ณธ์ ์ผ๋ก ์ ๊ณตํ๋ค.
ํ๋ผ๋ฏธํฐ ์ด๋ฆ ๋ค์ ๊ดํธ๋ฅผ ์ฐ๊ณ ํด๋น ํ๋ผ๋ฏธํฐ ํ์ ์ ๋ช ์ํด ์ง์ ํ ์ ์๋ค.
์ด๋, ํ๋ผ๋ฏธํฐ ํ์ ์ ์ด๋ฆ์ ๋ชจ๋ ์๋ฌธ์์ฌ์ผํ๋ค.

BATCH_JOB_EXECUTION_PARAMS

์๋ณ์ ์ฌ์ฉํ์ง ์๋ ํ๋ผ๋ฏธํฐ๋ ์์ ์ ์๋ค. ์๋ณ์ ์ฌ์ฉํ๊ณ ์ถ์ง ์๋ ํ๋ผ๋ฏธํฐ๋ ์์
-๋ฅผ ๋ค์๊ณผ ๊ฐ์ด ๋ถ์ฌ์ฃผ๋ฉด ๋๋ค.๋ค์๊ณผ ๊ฐ์ด
-๋ฅผ ๋ถ์ธ ํ๋ผ๋ฏธํฐ๋ ์๋ณ ํ๋ผ๋ฏธํฐ๋ก ์ฌ์ฉํ์ง ์์, ๊ธฐ์กด์ ์ด๋ฏธ ์ํ๋ Job์ผ๋ก ์คํจํ ๊ฒ์ ์ ์ ์๋ค.
ํ๋ผ๋ฏธํฐ์ ์ ๊ทผํ๋ ๋ฐฉ๋ฒ
ChunkContext์ธ์คํด์ค์คํ ์์ ์ Job ์ํ ์ ๊ณต
tasklet ๋ด์์ ์ฒ๋ฆฌ์ค์ธ chunk์ ๊ด๋ จ๋ ์ ๋ณด(์คํญ ๋ฐ ์ก๊ณผ ๊ด๋ จ๋ ์ ๋ณด ํฌํจ) ์ ๊ณต
JobParametes๊ฐ ํฌํจ๋StepContext์ฐธ์กฐ๊ฐ ์์์์
Late Binding : ์คํ๋ง ๊ตฌ์ฑ์ ์ฌ์ฉํด ์ฃผ์ ํ๋ ๋ฐฉ๋ฒ์ผ๋ก,
JobParameters๋ ๋ณ๊ฒฝํ ์ ์์ผ๋ฏ๋ก ๋ถํธ์คํธ๋ฉ์ ๋ฐ์ธ๋ฉํ๋ ๊ฒ์ด ์ข๋ค.
ํ๋ผ๋ฏธํฐ ์ ํจ์ฑ ๊ฒ์ฆ
org.springframework.batch.core.JobParametersValidator
JobParametersValidator ์ธํฐํ์ด์ค๋ฅผ ๊ตฌํํ๊ณ , ํด๋น ๊ตฌํ์ฒด๋ฅผ ์ก ๋ด์ ๊ตฌ์ฑํด ํ๋ผ๋ฏธํฐ ์ ํจ์ฑ ๊ฒ์ฆ์ ํ ์ ์๋ค.
์คํ๋ง์ ํ์ ํ๋ผ๋ฏธํฐ๊ฐ ๋๋ฝ์์ด ์ ๋ฌ๋๋์ง ํ์ธํ๋ DefaultJobParametersValidator๋ฅผ ๊ธฐ๋ณธ์ ์ผ๋ก ์ ๊ณตํด์ค๋ค.
DefaultJobParametersValidator์ฌ์ฉํ ์ ํจ์ฑ ๊ฒ์ฆ : ํ๋ผ๋ฏธํฐ ์กด์ฌ ์ฌ๋ถ๋ฅผ ์ ์ธํ ๋ค๋ฅธ ์ ํจ์ฑ ๊ฒ์ฆ์ ์ํํ์ง ์์.ํ์ ํ๋ผ๋ฏธํฐ ๋ฏธํฌํจ์ ์ค๋ฅ
์ ํ ํ๋ผ๋ฏธํฐ์ ํ์ ํ๋ผ๋ฏธํฐ ๊ฒน์น๋ ๊ฒฝ์ฐ ์ค๋ฅ
์ ํ ํ๋ผ๋ฏธํฐ์ ํ์ ํ๋ผ๋ฏธํฐ์ ํฌํจ๋์ง ์์ ํ๋ผ๋ฏธํฐ ์ ์ก์ ์ค๋ฅ
์ปค์คํ ์ ํจ์ฑ ๊ฒ์ฆ : ํ๋ผ๋ฏธํฐ ์กด์ฌ ์ฌ๋ถ ์ธ์ ์ถ๊ฐ ์ ํจ์ฑ ๊ฒ์ฆ์ด ํ์ํ ๊ฒฝ์ฐ ์ปค์คํ
JobParametersValidator๊ตฌํ ํ์CompositeJobParametersValidator: ์ฌ๋ฌ๊ฐ์ ์ ํจ์ฑ ๊ฒ์ฆ
์ก ํ๋ผ๋ฏธํฐ ์ฆ๊ฐ์ํค๊ธฐ
org.springframework.batch.core.JobParametersIncrementer
JobParametersIncrementer๋ ์ฌ์ฉํ ํ๋ผ๋ฏธํฐ๋ฅผ ๊ณ ์ ํ๊ฒ ์์ฑํ ์ ์๊ฒ ์คํ๋ง ๋ฐฐ์น๊ฐ ์ ๊ณตํ๋ ์ธํฐํ์ด์ค๋ก ๋งค ์คํ ์ timestamp๋ฅผ ์ถ๊ฐํ๊ฑฐ๋ ํ๋ผ๋ฏธํฐ๋ฅผ ์ฆ๊ฐ์์ผ์ผํ๋ ๊ฒฝ์ฐ์ ์ฌ์ฉํ๊ธฐ ์ ํฉํ๋ค.
RunIdIncrementer: ํ๋ผ๋ฏธํฐ ์ด๋ฆ์ดrun.id(long)์ ๊ฐ์ ์ฆ๊ฐCustom Incrementer
jobBuilderFactory์์ .incrementer() ๋ก ์ํํ ์ ์๋ค.
JobListener
๋ชจ๋ Job์ ์๋ช ์ฃผ๊ธฐ๋ฅผ ๊ฐ์ง๊ณ ์์ผ๋ฉฐ, ์คํ๋ง ๋ฐฐ์น๋ ์๋ช ์ฃผ๊ธฐ์ ํน์ ์์ ์์ ๋ก์ง์ ์ถ๊ฐํ ์ ์๊ฒ ๊ธฐ๋ฅ์ ์ ๊ณตํด์ค๋ค.
JobExecutionListener: Job ์คํ๊ณผ ๊ด๋ จ๋ ๋ฆฌ์ค๋ ์ธํฐํ์ด์คbeforeJob: Job ์ํ ์ด์ ์ ์ํafterJob: Job ์ํ์๋ฃ ํ ์ํํ๋ฉฐ Job์ ์๋ฃ ์ํ์ ์๊ด ์์ด ํธ์ถ๋๋ค.
Job Listener๋ฅผ ์์ฑํ๋๋ฐ ๋๊ฐ์ง ๋ฐฉ๋ฒ์ด ์๋ค.
JobExecutionListener์ธํฐํ์ด์ค ๊ตฌํJobBuilder์listener๋ฉ์๋๋ฅผ ํธ์ถํ๋ฉด ๋ค์๊ณผ ๊ฐ์ด Job์ํ ์ ํ๋ก ์ํ๋ ๊ฒ์ ๋ณผ ์ ์๋ค.์ด๋ ธํ ์ด์ ์ฌ์ฉ(
@BeforeJob,@AfterJob) : ์ธํฐํ์ด์ค๋ฅผ ๊ตฌํํ ํ์ ์์ด ์ด๋ ธํ ์ด์ ๋ง์ผ๋ก ๊ตฌํํ๋ฉด ๋๋ค.์ด๋ ธํ ์ด์ ์ผ๋ก ๊ตฌํํ๋ ๊ฒฝ์ฐ
JobListenerFactoryBean์ผ๋ก ๋ฆฌ์ค๋๋ฅผ ์ฃผ์ ํ ์ ์๋ค.
ExecutionContext

ExecutionContext๋ ๋ฐฐ์น ์ก์ ์ธ์
์ผ๋ก, ๊ฐ๋จํ ํค-๊ฐ์ ๋ณด๊ดํ๋ค. ์ด๋ Job์ ์ํ๋ฅผ ์์ ํ๊ฒ ๋ณด๊ดํ ์ ์๊ฒ ์ ๊ณตํด์ค๋ค. Job์ ์ํํ๋ ๊ณผ์ ์์ ์ฌ๋ฌ๊ฐ์ ExecutionContext๊ฐ ์กด์ฌํ ์ ์๋ค.
Job์ ๋ํ ์ํ :
JobExecution์ExecutionContext์ ์ ์ฅStep์ ๋ํ ์ํ :
StepExecution์ExecutionContext
์ด๋ ๊ฒ ๊ฐ Step์ฉ ๋ฐ์ดํฐ์ Job ์ ์ฒด์ฉ ๋ฐ์ดํฐ์ ๊ฐ์ด ๋ฐ์ดํฐ ์ฌ์ฉ ๋ฒ์๋ฅผ ์ง์ ํ ์ ์๋ค.
ExecutionContext๊ฐ ๋ด๊ณ ์๋ ๋ชจ๋ ๋ฐ์ดํฐ๋ JopRepository์ ์ ์ฅ๋๋ค.
ExecutionContext ๋ค๋ฃจ๊ธฐ
Job์ ExecutionContext๋ฅผ ๊ฐ์ ธ์ค๊ธฐ
Step ExecutionContext
ExecutionContextPromotionListener: Step์ExecutionContext์ ์๋ ํค๋ฅผJobExecution์ExecutionContext๋ก ์น๊ฒฉํ ์ ์๋ค.์ ์์ ์ ๊ฐ์ด ์คํ ๊ฐ์ ๊ณต์ ํ ๋ฐ์ดํฐ๊ฐ ์์ง๋ง ์ฒซ๋ฒ์งธ step์ด ์ฑ๊ณตํ์๋๋ง ๊ณต์ ํ ๋ ์ ์ฉํ๋ค.
ExecutionContext ์ ์ฅ
Job์ด ์ฒ๋ฆฌ๋๋ ๋์ ์คํ๋ง ๋ฐฐ์น๋ ๊ฐ ์ฒญํฌ๋ฅผ ์ปค๋ฐํ๋ฉฐ Job๊ณผ Step์ ์ํ๋ฅผ ์ ์ฅํ๋ค. (ExecutionContext ๋ฅผ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ ์ฅ)
์์ Step ExecutionContext ์์ ๋ฅผ ์ํํ๋ฉด BATCH_STEP_EXECUTION_CONTEXT์ ๋ค์๊ณผ ๊ฐ์ด "user.name":"dahyelele" ์ง์ ํ ๋ฐ์ดํฐ๊ฐ ํค-๊ฐ์ผ๋ก ๋ค์ด๊ฐ ๊ฒ์ ์ ์ ์๋ค.
Last updated
Was this helpful?