Skip to content

Latest commit

ย 

History

History
43 lines (43 loc) ยท 1.53 KB

File metadata and controls

43 lines (43 loc) ยท 1.53 KB

@Scheduled

Spring Scheduler

  • ์ผ์ •ํ•œ ์‹œ๊ฐ„ ๊ฐ„๊ฒฉ์œผ๋กœ ๋˜๋Š” ํŠน์ • ์ผ์ •์— ๋ฉ”์„œ๋“œ๋ฅผ ์‹คํ–‰๋˜๋„๋ก ํ•˜๋Š” ๊ธฐ๋Šฅ
  • Spring Boot starter ์— ๊ธฐ๋ณธ์ ์œผ๋กœ ์˜์กด org.springframework.scheduling

@Scheduled ๊ทœ์น™

  • ๋ฉ”์„œ๋“œ๋Š” void ํƒ€์ž…์ด์–ด์•ผ ํ•œ๋‹ค.
  • ๋ฉ”์„œ๋“œ๋Š” ๋งค๊ฐœ๋ณ€์ˆ˜ ์‚ฌ์šฉ ๋ถˆ๊ฐ€

@Scheduled ์˜ต์…˜

  1. fixedDelay
    • ์ด์ „ ์ž‘์—…์ด ์ข…๋ฃŒ๋œ ํ›„ ์„ค์ •์‹œ๊ฐ„ (milliseconds) ์ดํ›„ ๋‹ค์‹œ ์‹œ์ž‘
    • ์ด์ „ ์ž‘์—…์ด ์™„๋ฃŒ๋  ๋•Œ๊นŒ์ง€ ๋Œ€๊ธฐ
  2. fixedRate
    • ๊ณ ์ • ์‹œ๊ฐ„ ๊ฐ„๊ฒฉ์œผ๋กœ ์‹œ์ž‘
    • ์ด์ „ ์ž‘์—…์ด ์™„๋ฃŒ๋  ๋•Œ๊นŒ์ง€ ๋‹ค์Œ ์ž‘์—…์ด ์ง„ํ–‰๋˜์ง€ ์•Š์Œ
    • ๋ณ‘๋ ฌ ๋™์ž‘์„ ์‚ฌ์šฉํ•  ๊ฒฝ์šฐ @Async ์ถ”๊ฐ€
      • ํด๋ž˜์Šค์— @EnableAsync ์ถ”๊ฐ€
    • ์˜ˆ์ œ ์ฝ”๋“œ
@Async
@Scheduled(fixedRate = 1000)
public void scheduleFixedRate() throws InterruptedException {
	log.info("Fixed rate scheduled - {}", System.currentTimeMillis() / 1000);
	Thread.sleep(1000);
}
  1. fixedDelay + initialDelay
    • @initialDelay ๊ฐ’ ์ดํ›„ ์ฒ˜์Œ ์‹คํ–‰๋˜๊ณ , @fixedDelay ๊ฐ’์— ๋”ฐ๋ผ ๊ณ„์† ์ˆ˜ํ–‰
    • ์˜ˆ์ œ ์ฝ”๋“œ
@Scheduled(fixedDelay = 1000, initialDelay = 3000)
public void scheduleFixedDelayAndInitialDelayTask() {
	log.info("FixedDelay and InitialDelay scheduled - {}", System.currentTimeMillis() / 1000);
}
  1. Cron
    • ์ง์ ‘ ์˜ˆ์•ฝ์œผ๋กœ ์ˆ˜ํ–‰
    • ์˜ˆ์ œ ์ฝ”๋“œ
@Scheduled(cron = "0 15 11 20 * ?") // ๋งค์›” 15์ผ ์˜ค์ „ 11์‹œ 20๋ถ„์— ์‹คํ–‰
public void scheduledCronTask() {
	log.info("Cron scheduled - {}", System.currentTimeMillis() / 1000);
}