Spring Batch
μΌκ΄μ²λ¦¬λ₯Ό ν΅ν΄ μ¬λ¬ κ°μ μμ
μ 미리 μ ν΄μ§ μμμ λ°λΌ μ€λ¨ μμ΄ μ²λ¦¬νλ κ²
γSpring Batch μ 5κ°μ§ νΉμ§
1. λμ©λ μ²λ¦¬: λλμ λ°μ΄ν°λ₯Ό κ°μ Έμ€κ±°λ, μ λ¬νκ±°λ, κ³μ°νλ λ±μ μ²λ¦¬κ° κ°λ₯ν΄μΌ νλ€.
2. κ²¬κ³ μ±: μλͺ»λ λ°μ΄ν°λ₯Ό μΆ©λ/μ€λ¨ μμ΄ μ²λ¦¬ν μ μμ΄μΌ νλ€.
3. μλν: μ¬μ©μ κ°μ
μμ΄ μ€νλμ΄μΌ νλ€.
4. μ λ’°μ±: 무μμ΄ μλͺ»λμλμ§λ₯Ό μΆμ ν μ μμ΄μΌ νλ€. (λ‘κΉ
, μλ¦Ό)
5. μ±λ₯: μ§μ ν μκ° μμ μ²λ¦¬λ₯Ό μλ£νκ±°λ, λμμ μ€νλλ λ€λ₯Έ νλ‘κ·Έλ¨μ λ°©ν΄νμ§ μμμΌ νλ€.
Spring Scheduler
νΉμ ν μκ°μ λ±λ‘ν μμ
μ μλμΌλ‘ μ€νμν€λ κ²
γSpring Schedulerμ 3κ°μ§ νΉμ§
1. Spring Frameworkμ κΈ°λ³Έ κΈ°λ₯μΌλ‘ μμ‘΄μ±μ΄ λΆνμ νλ€.
2. μ κ·Όμ±: κ°λ¨ν μ΄λ
Έν
μ΄μ
μ μΈλ§μΌλ‘ μ¬μ©μ΄ κ°λ₯νλ€. (@Component, @Scheduled)
3. μ±κΈ μ°λ λ: μ€μΌμ€λ¬λ ν κ°μ μ°λ λλ‘ λμνλ€.
μΈμ μΈκΉ?
μ μ°μ΄λ λ°μ΄ν° λ°±μ
λ± κ°μ΄ λλμ λ°μ΄ν°λ₯Ό μ²λ¦¬ν λ μ¬μ©νλ€.
κ°μΈμ μΌλ‘ Spring Scheduler λ₯Ό μ΄μ©ν΄ μ΄λ―Έ μ ν΄μ§ λ°°μΉλ€μ λν μνλ₯Ό λͺ¨λν°λ§νλ λ°°μΉλ‘λ μ¬μ©νκ³ μλλ°,
Single Thread λ‘ λμμ±μ΄λ λΆμ°μ λν κ±±μ μμ΄ κ°λ³κ² μ¬μ©ν μ μλ μ΄μ μ΄ μλ€.
μ¬μ©μμμ μΈν°λμ
μ΄ μκΈ° λλ¬Έμ μ¬μ©μ μ€μ¬μ μλ¬ μ²λ¦¬λ₯Ό κ³ λ €νμ§ μμλ λμ§λ§ λ‘κ·Έμ λ³λμ μλ¦Όμ μ€μ ν΄μ λͺ¨λν°λ§μ μ§νν΄μΌ νλ€.
μ λ΅
Batch νλ κ°λ°νλλ° μ λ΅κΉμ§ νμν κΉ?
λ΅μ "YES"
λ°°μΉλ μ½μ΄ λ°μ΄ν°λ₯Ό λ§μ΄ λ€λ£¨κΈ° λλ¬Έμ λ°μ΄ν°μ μμ μ±μ΄ 보μ₯λμ΄μΌ νλ©°, μμ λ°°μΉ μκ°μ νμΈκ³Ό μμ€ν
μ λ³Όλ₯¨μ νμΈν μ μμ΄μΌ νλ€. λ μμ€ν
κ³Όμ λμμ± κ²ν μ λͺ¨λν°λ§μ΄ νμμ μΌλ‘ κ°λ₯ν΄μΌ νλ€.
λ€μμΌλ‘ μ΄μ©κ³Ό μ€κ³μ λν κΈ°μ΄ μ λ΅μ μΈμ μΌλ μΈλΆ λΆλ₯λ₯Ό μ§ννλ€.
μ²λ¦¬νκ³ μ νλ λ°°μΉμ μ
λ ₯μ ꡬλΆνμ¬μΌ νλ€.
νμ
μμ μ¬μ©ν λ΄μ©μ μλμ κ°μ΄ ν¬κ² 3κ°μ§μ ꡬλΆμ΄ λμ¨λ€.
1. λ°μ΄ν°λ² μ΄μ€ //μμ) λ°μ΄ν°λ² μ΄μ€μμ μ μ°μ μ§νν λͺ©λ‘μ λμ΄ν΄ λ°°μΉλ₯Ό μ§ννλ€.
2. νμΌ //μμ) μΈλΆμ°λμ ν΅ν΄ μ λ¬λ°μ κ²°κ³Ό νμΌμ΄λ μ§μ μ λ°°μΉλ₯Ό ν΅ν΄ μλ£λ νμΌλ‘ λ°°μΉλ₯Ό μ§ννλ€.
3. λ©μμ§ //μμ) Queue ꡬ쑰μμ λκΈ°μ΄μ μλ λ©μμ§μ λν΄ λ°°μΉλ₯Ό μ§ννλ€.
μ£Όμν΄μΌ ν 7κ°μ§
1. νμ₯μ± - μΈμ λ μ‘°κ±΄μ΄ μΆκ°λ μ μμμ λλΉν΄μΌ νλ€.
2. λ¨μ ν
μ€νΈ - μ νν λλ²κΉ
μ μν΄ λ¨μ ν
μ€νΈκ° κ°λ₯ν΄μΌ νλ€.
3. μ§κ΄μ± - νμν 리μμ€λ§ μ μΈνμ¬ μ¬μ©ν μ μμ΄μΌ νλ€.
4. μ¬μ¬μ©μ± - νμμ μΈ κΈ°λ₯μ μ¬μ¬μ© κ°λ₯ν΄μΌ νλ€.
5. μκ°μ μ½ - μ νν μΈ‘μ μλ κ³νλ μκ° λ΄ μ§νλ μ μλλ‘ ν΄μΌ νλ€.
6. λ
립μ - λ€λ₯Έ μ€λ λμ κ΄κ³μμ΄ νλμ Job μΌλ‘μ¨ λ
립μ μΌλ‘ μ€νλμ΄μΌ νλ€.
7. μνμ± - λ°°μΉκ° μ§νλλ©° νμ¬ μνλ₯Ό λ¨κ²¨μΌ νλ€. (BatchStatus - STARTED, FAILED, COMPLETED)