๐ spring-batch 2
โ๏ธ ์คํ๋ง ๋ฐฐ์น ์ํคํ ์ฒ
- ์คํ๋ง ๋ฐฐ์น๋ Jobํ์
์ Bean์ด ์์ฑ๋๋ฉด JobLauncher์ ์ํด Job์ ์คํํ๋ค.
private final JobBuilderFactory jbf; @Bean public Job helloJob() { return jbf.get("helloJob") ... ... .buld(); } - ์คํ๋ Job์ Step ํ์
์ผ๋ก ๋ฑ๋ก๋ Bean์ ์คํํ๋ค.
private final StepBuilderFactory sbf; @Bean public Step helloStep() { return sbf.get("helloStep") ... ... .build(); }
โ๏ธ Chunk & Task
Chunk
- ํ๋์ ํฐ ๋ฉ์ด๋ฆฌ์ ์์ ์ n๊ฐ๋ก ๋๋์ด ์คํํ๋ค.
Task
- ํ๋์ ์์ ์ผ๋ก ์คํํ๋ค.
- ์ฒ๋ฆฌ ๋์์ ํ ๋ฒ์ ์คํํด๋ ๋ฌด๋ฆฌ๊ฐ ์๋ ๊ฒฝ์ฐ ์ฌ์ฉํ๋ค.
โ๏ธ Chunk ๊ธฐ๋ฐ Step
ItemReader -> ItemProcessor -> ItemWriter
ItemReader
- ๋ฐฐ์น ์ฒ๋ฆฌ ๋์์ ์ฝ์ด์ ItemProcessor์๊ฒ ์ ๋ฌํ๋ค.
- ๋ฐฐ์น ์ฒ๋ฆฌ ๋์ ๋ฐ์ดํฐ๋ฅผ ํ์ผ ๋๋ DB์ ์ ๊ทผํ์ฌ ์ฝ๋๋ค.
ItemProcessor
- ItemReader๋ถํฐ ๋ฐ์ input์ ๋ํด ๊ฐ๊ณต ๋ฐ ํํฐ๋ง์ ๊ฑฐ์ณ ItemWriter์๊ฒ ์ ๋ฌํ๋ค.
- ItemProcessor๊ฐ์ฒด๋ optional ํ๋ค. (ํด๋น ์์ ์ Reader ํน์ Writer์์ ์ฒ๋ฆฌ๊ฐ๋ฅ)
ItemWriter
- ๋ฐฐ์น ๋์ ๊ฐ์ฒด, ๋ฐฐ์น ๋์ ๋ฐ์ดํฐ๋ฅผ ์ฒ๋ฆฌํ๋ค.
- DB update ํน์ ์ด๋ฒคํธ ์๋ฆผ ๋ฑ์ ์ํํ๋ค.
โ๏ธ BATCH_JOB_EXCUTION_PARAM test
return jbf.get("helloJob")
.incrementer(new RunIdIncrementer())
.start(helloStep())
.build();
new RunIdIncrementer()์ Job์ ์ด๋ฆ์ด BATCH_JOB_EXCUTION_PARAM์ ์ ์ฅ๋๋ ๊ฒ์ ํ์ธ
โ๏ธ Job ์ธ์คํด์ค์ ์์ฑ ๊ธฐ์ค
Job์ด๋ฆ๊ณผ Job parameters์ ๊ฐ์ ๊ธฐ์ค์ผ๋ก ์์ฑ, ์ฌ์คํ, ์ฌ์คํ ์คํจ๊ฐ ๊ฒฐ์ ๋๋ค.
- ํ๋์ Job์ ๊ฐ์ parameter๋ก ์คํํ ์ ์๋ค.
- .incrementer(new RunIdIncrementer()) ์ ๊ฐ์ด ์ํ์ ํ ๊ฐ์ ํ๋ผ๋ฏธํฐ๋ก ์ฃผ๋ฉด ๊ฐ์ ์ด๋ฆ์ Job ์ธ์คํด์ค๋ฅผ ์์ฑ ๊ฐ๋ฅํ๋ค.
๐ ์๊ฐ์ธ์ฆ

ํจ์คํธ์บ ํผ์ค [์ง์ฅ์ธ ์ค๋ฌด๊ต์ก]
ํ๋ก๊ทธ๋๋ฐ, ์์ํธ์ง, UX/UI, ๋ง์ผํ , ๋ฐ์ดํฐ ๋ถ์, ์์ ๊ฐ์, The RED, ๊ตญ๋น์ง์, ๊ธฐ์ ๊ต์ก, ์๋น์ค ์ ๊ณต.
fastcampus.co.kr
๋ณธ ํฌ์คํ ์ ํจ์คํธ์บ ํผ์ค ํ๊ธ ์ฑ๋ฆฐ์ง ์ฐธ์ฌ๋ฅผ ์ํด ์์ฑ๋์์ต๋๋ค.
'Spring Batch' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
| ํจ์คํธ์บ ํผ์ค ์ฑ๋ฆฐ์ง 24์ผ์ฐจ - Spring Batch 6 (0) | 2021.09.29 |
|---|---|
| ํจ์คํธ์บ ํผ์ค ์ฑ๋ฆฐ์ง 23์ผ์ฐจ - Spring Batch 5 (0) | 2021.09.28 |
| ํจ์คํธ์บ ํผ์ค ์ฑ๋ฆฐ์ง 22์ผ์ฐจ - Spring Batch 4 (0) | 2021.09.27 |
| ํจ์คํธ์บ ํผ์ค ์ฑ๋ฆฐ์ง 21์ผ์ฐจ - Spring Batch 3 (0) | 2021.09.26 |
| ํจ์คํธ์บ ํผ์ค ์ฑ๋ฆฐ์ง 19์ผ์ฐจ - Spring Batch 1 (0) | 2021.09.24 |