๐ Job์ด๋?
- Job์ ๋ฐฐ์น ์ฒ๋ฆฌ ๊ณผ์ ์ ํ๋์ ๋จ์๋ก ๋ง๋ค์ด ํฌํํ ๊ฐ์ฒด.
- ์ ์ฒด ๋ฐฐ์น ์ฒ๋ฆฌ์ ์์ด ํญ์ ์ต์๋จ ๊ณ์ธต์ ์์ต๋๋ค.
- ์ต์ ํ๋์ Step์ ๊ฐ์ ธ์ผ ํ๋ฉฐ ์์ฒญ๋๊ฒ ๋ณต์กํ Job์ด ์๋ ์ด์ 2-10๊ฐ์ Step์ ๊ถ์ฅํ๋ค
๐ Step์ด๋?
- Step์ ์ค์ง์ ์ธ ๋ฐฐ์น ์ฒ๋ฆฌ๋ฅผ ์ ์ํ๊ณ ์ ์ด ํ๋๋ฐ ํ์ํ ๋ชจ๋ ์ ๋ณด๊ฐ ์๋ ๋๋ฉ์ธ ๊ฐ์ฒด.
- job์ ๊ตฌ์ฑํ๋ ๋
๋ฆฝ๋ ์์
์ ๋จ์.
- tasklet ๊ธฐ๋ฐ ์คํ
๊ณผ chunk ๊ธฐ๋ฐ ์คํ
์ด ์๋ค.
tasklet
- ์คํ
์ด ์ค์ง๋ ๋๊น์ง exeute ๋ฉ์๋๊ฐ ๊ณ์ ๋ฐ๋ณตํ์ฌ ์ํ๋๋ค.
- ์ด๊ธฐํ, ์ ์ฅ, ํ๋ก์์ ์คํ, ์๋ฆผ ์ ์ก ๋ฑ๊ณผ ๊ฐ์ job์์ ์ฌ์ฉ๋๋ค.
chunk
- ItemReader, ItemProcessor, ItemWriter๋ผ๋ 3๊ฐ์ ์ฃผ์ ๋ถ๋ถ์ผ๋ก ๊ตฌ์ฑ๋๋ค.
- ItemProcessor๊ฐ ํ์๋ ์๋๋ค.
๐ Job ์คํ
job์ ์คํํ๋ฉด job์ ๊ฐ step์ ์คํํ๋ค. ๊ฐ step์ด ์คํ๋๋ฉด JobRepository๋ ํ์ฌ ์ํ๋ก ๊ฐฑ์ ๋๋ค.
์ฆ ์คํ๋ ์คํ
, ํ์ฌ ์ํ, ์ฝ์ ์์ดํ
๋ฐ ์ฒ๋ฆฌ๋ ์์ดํ
์ ๋ฑ์ด ๋ชจ๋ JobRepository์ ์ ์ฅ๋๋ค.
๐ก JobRepository
- ๋ฐฐ์น์ ๊ด๋ จ๋ ์์น๋ฐ์ดํฐ(์์์๊ฐ, ์ข
๋ฃ์๊ฐ, ์ํ, ์ฝ๊ธฐ/์ฐ๊ธฐ ํ์ ๋ฑ)๋ฟ๋ง ์๋๋ผ job์ ์ํ๋ฅผ ๊ด๋ฆฌ ํ๋ค.
- ์ผ๋ฐ์ ์ผ๋ก ๊ด๊ณํ DB๋ฅผ ์ฌ์ฉํ์ฌ ๋ฐฐ์น ๋ด์ ์ฃผ์ ์ปดํฌ๋ํธ๊ฐ ๊ณต์ ํ๋ค.
๐ก JobLauncher
- Job.execute ๋ฉ์๋๋ฅผ ํธ์ถํ์ฌ job์ ์คํํ๋ ์ญํ ์ ๋ด๋นํ๋ค.
- ์ก์ ์ฌ์คํ ๊ฐ๋ฅ ์ฌ๋ถ ๊ฒ์ฆ, ์ก์ ์คํ๋ฐฉ๋ฒ, ํ๋ผ๋ฏธํฐ ์ ํจ์ฑ ๊ฒ์ฆ ๋ฑ์ ์ฒ๋ฆฌ๋ฅผ ์ํํ๋ค.
๐ง ์๋ ์๋ฆฌ
์ฌ๋ฌ ์์ดํ
์ผ๋ก ์ด๋ค์ง ์ฒญํฌ์ ์ฒ๋ฆฌ๊ฐ ์คํ
๋ด์์ ์๋ฃ๋๋ค.
โฌ๏ธ
JobRepository ๋ด์ ์๋ JobExecution ๋๋ StepExecution์ ํ์ฌ ์ํ๋ก ๊ฐฑ์ ํ๋ค.
โฌ๏ธ
step์ ItemReader๊ฐ ์ฝ์ ์์ดํ
๋ชฉ๋ก์ ๋ฐ๋ผ๊ฐ๋ค.
โฌ๏ธ
step์ด ๊ฐ ์ฒญํฌ๋ฅผ ์ฒ๋ฆฌํ ๋๋ง๋ค, JobRepository์ StepExecution์ step ์ํ๊ฐ ์
๋ฐ์ดํธ๋๋ค.
โฌ๏ธ
ํ์ฌ๊น์ง์ ์ปค๋ฐ ์, ์์ ๋ฐ ์ข
๋ฃ ์๊ฐ, ๊ธฐํ ๋ค๋ฅธ ์ ๋ณด ๋ฑ์ด JobRepositry์ ์ ์ฅ๋๋ค.
โฌ๏ธ
Job ๋๋ Step์ด ์๋ฃ๋๋ฉด, JobRepository ๋ด์ ์๋ JobExecution ๋๋ StepExecution์ด ์ต์ข
์ํ๋ก ์
๋ฐ์ดํธ ๋๋ค.
โ JobExecution๊ณผ StepExecution
๐ก JobInstance
- Job์ ๋
ผ๋ฆฌ์ ์คํ์ด๋ค.
- Job์ ์ด๋ฆ๊ณผ Job์ ๋
ผ๋ฆฌ์ ์คํ์ ์ํด ์ ๊ณต๋๋ ๊ณ ์ ํ ์๋ณ ํ๋ผ๋ฏธํฐ ๋ชจ์์ด๋ค.
- ์ก์ด ๋ค๋ฅธ ํ๋ผ๋ฏธํฐ๋ก ์คํ๋ ๋๋ง๋ค ์๋ก์ด JobInstance๊ฐ ์์ฑ๋๋ค.
- JobInstance๋ ์ฌ๋ฌ ๊ฐ์ JobExecutions๋ฅผ ๊ฐ์ง ์ ์๋ค.
๐ก JobExecution
- Job์ ์ค์ ์คํ์ ์๋ฏธํ๋ค.
- Job์ ๊ตฌ๋ํ ๋๋ง๋ค ๋งค๋ฒ ์๋ก์ด JobExecution์ ์ป๊ฒ๋๋ค.
- JobExecution์ job์ด๋ step์ด ์งํ๋ ๋ ๋ณ๊ฒฝ๋๋ค. ์ก ์ํ๋ JobExecution์ ExecutionContext์ ์ ์ฅ๋๋ค.
๐ก StepExecution
- Step์ ์ค์ ์คํ์ ๋ํ๋ธ๋ค.
- ๋ฐ๋ฉด StepInstance๋ผ๋ ๊ฐ๋
์ ์กด์ฌํ์ง ์๋๋ค.
- JobExecution์ ์ฌ๋ฌ ๊ฐ์ StepExecution๊ณผ ์ฐ๊ด๋๋ค.
๐ก ExecutionContext
- ๋ฐฐ์น job์ ์ธ์
์ด๋ค.
- ExecutionContext๊ฐ ๋ด๊ณ ์๋ ๋ชจ๋ ๊ฒ๋ค์ด JobRepository์ ์ ์ฅ๋๋ฏ๋ก ์์ ํ๋ค.
- ์น ์ดํ๋ฆฌ์ผ์ด์
์ ์ธ์
๊ณผ ๋ค๋ฅธ ์ ์ job์ ๋ค๋ฃจ๋ ๊ณผ์ ์์ ์ค์ ๋ก ์ฌ๋ฌ ๊ฐ์ ExecutionContext๊ฐ ์กด์ฌํ ์ ์๋ค.