๐Ÿ’ก Quartz Scheduler๋ฅผ ํ•™์Šตํ•ด ๋ณด์ž

-ยท2022๋…„ 1์›” 21์ผ
1

TIL

๋ชฉ๋ก ๋ณด๊ธฐ
11/12

Quartz Scheduler

Quartz Scheduler ๋ž€?

๋ฐฐ์น˜ ํ”„๋กœ๊ทธ๋žจ์„ ์ผ์ • ์‹œ๊ฐ„, ์ฃผ๊ธฐ์ ์œผ๋กœ ๋™์ž‘ํ•˜๋„๋ก ๋งŒ๋“  ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ

Quartz Scheduler์˜ ํŠน์ง•

  • DB ๊ธฐ๋ฐ˜์œผ๋กœ ์Šค์ผ€์ค„๋Ÿฌ ๊ฐ„์˜ Clustering ๊ธฐ๋Šฅ์„ ์ œ๊ณต
  • In-memory Job Scheduler๋„ ์ œ๊ณต
  • Admin UI์„ ์ œ๊ณตํ•˜์ง€ ์•Š์Œ
  • ์Šค์ผ€์ค„๋ง ์‹คํ–‰์— ๋Œ€ํ•œ History๋Š” ๋ณด๊ด€ํ•˜์ง€ ์•Š์Œ

Quartz Scheduler ๊ตฌ์„ฑ ์š”์†Œ

Job

  • Quartz API์—์„œ ๋‹จ ํ•˜๋‚˜์˜ ๋ฉ”์„œ๋“œ๋ฅผ ๊ฐ€์ง„ execute(JobExecutionContext) Job interface๋ฅผ ์ œ๊ณต
  • Quartz์—์„œ ์ˆ˜ํ–‰ํ•ด์•ผ ํ•˜๋Š” ์‹ค์ œ ์ž‘์—…์„ ์ด ๋ฉ”์„œ๋“œ์—์„œ ๊ตฌํ˜„

JobDataMap

  • Job ์ธ์Šคํ„ด์Šค๊ฐ€ ์‹คํ–‰ํ•  ๋•Œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๊ฒŒ ์›ํ•˜๋Š” ์ •๋ณด๋ฅผ ๋‹ด์„ ์ˆ˜ ์žˆ๋Š” ๊ฐ์ฒด

JobDetail

  • Job์„ ์‹คํ–‰์‹œํ‚ค๊ธฐ ์œ„ํ•œ ์ •๋ณด๋ฅผ ๋‹ด๊ณ ์žˆ๋Š” ๊ฐ์ฒด
    • ์ด๋ฆ„, ๊ทธ๋ฃน, JobDataMap ์†์„ฑ ๋“ฑ ์ง€์ •
  • Trigger๊ฐ€ Job์„ ์ˆ˜ํ–‰ํ•  ๋•Œ ์ด ์ •๋ณด๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ์Šค์ผ€์ค„๋ง ํ•จ

Trigger

  • Job์„ ์‹คํ–‰์‹œํ‚ฌ ์Šค์ผ€์ค„๋ง ์กฐ๊ฑด
    • ๋ฐ˜๋ณต ํšŸ์ˆ˜, ์‹œ์ž‘ ์‹œ๊ฐ„
  • Tigger์™€ Job์˜ ๊ด€๊ณ„
    • 1 Trigger = 1 Job: ๋ฐ˜๋“œ์‹œ ํ•˜๋‚˜์˜ Trigger๋Š” ํ•˜๋‚˜์˜ Job์„ ์ง€์ •ํ•  ์ˆ˜ ์žˆ๋‹ค
    • N Trigger = 1 Job: ํ•˜๋‚˜์˜ Job์„ ์—ฌ๋Ÿฌ ์‹œ๊ฐ„์œผ๋กœ ์‹คํ–‰ ์‹œํ‚ฌ ์ˆ˜ ์žˆ๋‹ค.

JobStore

  • JDBCJobStore
    • default ๊ฐ’์œผ๋กœ ๋ฉ”๋ชจ๋ฆฌ์— ์Šค์ผ€์ค„ ์ •๋ณด๋ฅผ ์ €์žฅ
    • ์‹œ์Šคํ…œ ๋ฌธ์ œ ๋ฐœ์ƒ ์‹œ ์Šค์ผ€์ค„ ๋ฐ์ดํ„ฐ๊ฐ€ ๋‚ ๋ผ๊ฐ
  • RAMJobStore
    • ์Šค์ผ€์ค„ ์ •๋ณด๋ฅผ DB์— ์ €์žฅ
    • ์‹œ์Šคํ…œ์ด ์…ง๋‹ค์šด ๋˜๋”๋ผ๋„ ์Šค์ผ€์ค„ ์ •๋ณด๊ฐ€ ์œ ์ง€๋˜๋ฏ€๋กœ ์‹œ์Šคํ…œ ์žฌ์‹œ์ž‘์‹œ ๋‹ค์‹œ Job์„ ์‹คํ–‰

Reference

profile
-์˜ Velog

0๊ฐœ์˜ ๋Œ“๊ธ€