Batch Applicationμ΄λ μ»΄ν¨ν°μμ μ¬λκ³Όμ μνΈ μμ© μμ΄ μ΄μ΄μ§λ νλ‘κ·Έλ¨(μμ )λ€μ μ€ν.
μΌλ° μ΄νλ μΌμ΄μ μ μ¬λκ³Όμ μνΈμμ© (μΈν°λ μ )μ ν΅ν΄ μλ΅κ³Ό μμ²μ΄ μμ§λ§ λ°°μΉμ± μ΄ν리μΌμ΄μ μ νλ² μμ²νλ©΄ μμμ μ²λ¦¬λλ ꡬ쑰λ₯Ό κ°λλ€.
λ°°μΉ μ΄ν리μΌμ΄μ μ μ¬μ©ν΄μΌ ν λ
- μΌμ μ£ΌκΈ°λ‘ μ€νλμ΄μΌ ν λ
- μ€μκ°μ΄ μ²λ¦¬κ° μ΄λ €μ΄ λλμ λ°μ΄ν°λ₯Ό μ²λ¦¬ν΄μΌ ν λ
λΉμ§λμ€ λ‘μ§λ§ μ κ²½μ°λ©΄ λκ²λ λμ©λ μ²λ¦¬μ λν λ€λ₯Έκ²λ€μ΄ λͺ¨λ νλ μμν¬μ μΆμν λμ΄μλ€. λͺ¨λ λ°μ΄ν°λ₯Ό λ©λͺ¨λ¦¬μ μμ§μλ μ‘°ν λ°©μμ΄ κΈ°λ³Έ.
Quartz Job Schedulerλ‘μ¨ μ€μΌμ₯΄λ§ νλ μμν¬μ΄λ€. ex) λ§€μ£Ό νμμΌ 12μμ μμ λ°°μΉμλ λ€λ₯΄κ² κ·Έλ₯ μΌμ μ£ΌκΈ°λ‘ μ€νλ§ μμΌμ€λ€.,
- Step : Job μμμ νλ‘μΈμμ²λΌ λμκ°λ λ¨μ
μΈλΆμμ νλΌλ―Έν°λ₯Ό μ£Όμ λ°μ λ°°μΉ μ»΄ν¬λνΈλ₯Ό μ€νμν€λκ²
@Value('#{jobParameter[νλΌλ©ν°λͺ
]}') νμ
μ΄λ¦Job -> Step μ€νμ Stepμ @JobScopeκ° μμ΄μΌ νκ³
Step -> Tasklet μ€νμμ Taskletμ @StepScope
@JobParameter, @StepParameterλ μ€νλλ μμ μ μμ±μ΄λμ΄ @Beanμ΄ Lazy νκ² μμ±λλ€.
μ΄ μ±μ§μ μ΄μ©ν΄μ reader processor writerλ₯Ό λμ μΌλ‘ μμ± κ°λ₯νλ€.
Quartz λ Database κΈ°λ°μΌλ‘ Scheduler Key μ Trigger Key λ₯Ό ν΅ν΄ Schedule μ Clustering νλ€ μ¦, Database λ₯Ό κΈ°λ°μΌλ‘ λͺ¨λ Scheduleμ λν μ μ΄κ° κ°λ₯
- Scheduler : μ€μΌμ€λ¬μ μνΈ μμ©νκΈ°μν μ£Όμ API.
- Trigger : μ£Όμ΄μ§ μμ μ΄ μ€νλ μΌμ μ μ μνλ κ΅¬μ± μμ
- JobDetail : μμ μ μΈμ€ν΄μ€λ₯Ό μ μνλ λ° μ¬μ©
Job -> Step -> Reader -> Process -> Writer
μ€μΌμ₯΄λ§μ μ΅μ ν λμ΄μλ Quartzμ λμ©λ λ°°μΉμ± μμ
μ μ΅μ ν λμ΄μλ Spring Batch μλ‘μ μ₯μ μ μ μμ΄μ μ¬μ©νλ©΄ μ’μ κ΅¬μ‘°κ° λ μ μμ
Database λ₯Ό κΈ°λ°μΌλ‘ Schedule μΈμ€ν΄μ€λ€ κ°μ Clustering μ΄ κ°λ₯ Application μ΄ κ΅¬λλ μνλ₯Ό μ μ§νκΈ° λλ¬Έμ, λΉκ΅μ μ νν μκ°μ Job μνμ΄ κ°λ₯
UI Admin μ 곡λμ§ μμ μλ κΈ°λ₯, Schedule Control κΈ°λ₯ λ±μ μ§μ ꡬννκ±°λ, μμ¨μΌ ν¨



