์คํ๋ง๋ถํธ ์ค์ผ์ฅด๋ฌ
์ด๋ฒ ํฌ์คํ ์์๋ ์คํ๋ง๋ถํธ ํ๋ก์ ํธ์์ ์ค์ผ์ฅด๋ง ์์ ์ ๋ฑ๋กํ์ฌ ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ์ ๋ํด์ ์ค๋ช ํฉ๋๋ค.
์คํ๋ง ๋ถํธ์์ ์ค์ผ์ฅด๋ฌ๋ฅผ ์ฌ์ฉํ๋ ค๋ฉด ์ฐ์ ์๋์ฒ๋ผ
@EnableScheduling ์ด๋ ธํ ์ด์ ์ @Configuration์ด ๋ถ์ ํด๋์ค์ ๋ฑ๋กํด์ค์ผ ํฉ๋๋ค.
์ ์ฒ๋ผ ์ด๋ ธํ ์ด์ ์ ๋ถ์ฌ์ฃผ๋ฉด
์คํ๋ง์ด ๊ด๋ฆฌํ๋ ๋น ์ค์์ ์๋์ ๊ฐ์ด
@Scheduled ์ด๋ ธํ ์ด์ ์ด ๋ถ์ด์๋ ๊ฒ๋ค์
์ฐพ์์ ํ์ฑํ ์์ผ์ฃผ๋ ์ญํ ์ ํ๊ฒ๋ฉ๋๋ค.
์ ์ฒ๋ผ @Scheduled ์ด๋ ธํ ์ด์ ์ ๋ถ์ฌ์ฃผ๊ณ ์คํ์ฃผ๊ธฐ๋ฅผ ํน์ ์ง์ด์ฃผ๋ฉด
ํด๋น ์ ํ๋ฆฌ์ผ์ด์ ์ด ์คํ๋๋ฉด ์๋์ผ๋ก ์คํ์ด ๋ฉ๋๋ค.
์คํ์ฃผ๊ธฐ๋ฅผ ์ค์ ํ๋ ๋ฐฉ๋ฒ์ ๊ธฐ๋ณธ์ ์ผ๋ก ์ธ ๊ฐ์ง๊ฐ ์์ต๋๋ค.
fixedRate : ๋งค ํน์ ๋ฐ๋ฆฌ์ด๋ง๋ค ๋์
fixedDelay : ํด๋น ๊ธฐ๋ฅ์ด ์ข ๋ฃ๋ ํ ํน์ ๋ฐ๋ฆฌ์ด ์ดํ์ ๋ค์ ๋์
cron : ํฌ๋ก ํํ์์ ์ ํด์ง ๋ด์ฉ๋๋ก ๋์
์ฌ๋ฌ ๊ฐ์ ์ค์ผ์ฅด ์ก์ ๋ฑ๋กํ ๋์๋ ์ฃผ์ํ ์ ์ด ์์ต๋๋ค.
์ ์ฒ๋ผ ๋ ๊ฐ์ ์ค์ผ์ฅด ์ก์ด ๋ฑ๋ก๋์ด์์ ๊ฒฝ์ฐ ํ ๋ฒ์ ํ๋์ ์ก๋ง ๋์ํ๋ค๋ ์ ์ ๋๋ค.
์ฆ, @Scheduled๊ฐ ๋ถ์ ๊ธฐ๋ฅ๋ค์ด ์คํ๋๋ ์๊ฐ์ด ์ค๋ณต๋ ๊ฒฝ์ฐ ํ ๋ฒ์ ํ๋์ ์์ ๋ง ์คํ๋ฉ๋๋ค.
๋ง์ฝ ๋ ๊ฐ ์ด์์ ๊ธฐ๋ฅ์ด ํ๊บผ๋ฒ์ ์คํ๋์ด๋ ์ฑ๋ฅ์ ๋ฌธ์ ๊ฐ ์์ ๊ฒฝ์ฐ์๋
์๋์ฒ๋ผ @Async์ฒ๋ฆฌ๋ฅผ ํ ์ ์์ต๋๋ค.
๋ฌผ๋ก , @Async ๊ฐ ์ ์ฉ๋๋ ค๋ฉด @Configuration์ @EnableAsync๋ ์ถ๊ฐํด์ค์ผ ํฉ๋๋ค.
์ฌ๊ธฐ๊น์ง ์ค์ ์ด ๋์๋ค๋ฉด ์ ๋ scheduled task๋ค์ ๋์์ ์คํ๋ฉ๋๋ค.
์ถ๊ฐ๋ก @Async๋ฅผ ๋ถ์ด์ง ์์ task๋ฅผ ํ๋ ๋ ์ถ๊ฐํ๋ฉด ์ด๋ป๊ฒ ๋์ํ ๊น์?
task๋ฅผ ํ๋ ๋ ์ถ๊ฐํด์ ๊ผญ!! ํ ์คํธํด๋ณด์ธ์.
์ด์์ผ๋ก ์คํ๋ง๋ถํธ์์ ์ค์ผ์ฅด๋ง ์ก์ ๋ฑ๋กํ์ฌ ํ์ฉํ๋ ๋ฐฉ๋ฒ์ ๋ํด ๊ฐ๋จํ ํฌ์คํ ํด๋ณด์์ต๋๋ค.
์ ์ฉํ๋ค๋ฉด ์ข์์ ๊พน!๊พน!๊พน! ๋๋ฌ์ฃผ์ธ์ ^-^