Cron ์์
์ ์ฌ๋ฌ ์ธ์คํด์ค์์ ๋์์ ์คํ๋์ด ๋ฐ๋ณต์ ์ธ ์์
๊ณผ ๋ฐ์ดํฐ ๋ถ์ผ์น๋ก ์ด์ด์ง๋ฉด์ ๋ฉํฐ ์ธ์คํด์ค ํ๊ฒฝ์์ ๋ฌธ์ ๋ฅผ ์ผ์ผํฌ ์ ์์ต๋๋ค. ์ด๋ฅผ ํด๊ฒฐํ๋ ค๋ฉด ์ ๊ธ ๋ฉ์ปค๋์ฆ์ ์ฌ์ฉํ์ฌ ๋จ์ผ ์ธ์คํด์ค์์๋ง ์์
์ด ์คํ๋๋๋ก ํ ์ ์์ต๋๋ค. NestJS๋ cron ์์
์ ์ํ @nestjs/schedule ๋ชจ๋์ ์ ๊ณตํ์ฌ @Cron, @Interval, @Timeout๊ณผ ๊ฐ์ ๋ฐ์ฝ๋ ์ดํฐ๋ฅผ ์ฌ์ฉํ์ฌ cron ์์
์ ์ฝ๊ฒ ๊ด๋ฆฌํ ์ ์๊ฒ ํด์ค๋๋ค. ๊ทธ๋ฌ๋ ์ด ๋ชจ๋์ ๋ฉํฐ ์ธ์คํด์ค ํ๊ฒฝ์ ๋ํ ๋นํธ์ธ ์๋ฃจ์
์ ์ ๊ณตํ์ง ์์ต๋๋ค. ๋ฐ์ดํฐ๋ฒ ์ด์ค ๊ธฐ๋ฐ ๋น๊ด์ ์ ๊ธ, Redis ์ ๊ธ, API ํธ์ถ์ ํตํ ๋ชจ๋ํฐ๋ง, ํ๋ฅผ ์ฌ์ฉํ ์์
๊ด๋ฆฌ์ ๊ฐ์ ์ ๊ธ ๋ฉ์ปค๋์ฆ์ ์ฌ์ฉํ์ฌ ์ค๋ณต ์์
์ ๋ฐฉ์งํ ์ ์์ต๋๋ค. ๊ฐ ์ ๊ธ ๋ฉ์ปค๋์ฆ์ ์ ๋ขฐ์ฑ, ์ฑ๋ฅ, ํ์ฅ์ฑ๊ณผ ๊ฐ์ ์ฅ๋จ์ ์ด ์์ต๋๋ค. ์๋ฅผ ๋ค์ด, Redis ์ ๊ธ์ ๋น ๋ฅด๊ณ ๊ฐ๋ณ์ง๋ง ๋ณ๋์ Redis ์๋น์ค๊ฐ ํ์ํ ๋ฐ๋ฉด, ๋ฐ์ดํฐ๋ฒ ์ด์ค ๊ธฐ๋ฐ ๋น๊ด์ ์ ๊ธ์ ์ ๋ขฐํ ์ ์์ง๋ง ์ฑ๋ฅ ๋ฌธ์ ๊ฐ ๋ฐ์ํ ์ ์์ต๋๋ค. ๋ฉํฐ ์ธ์คํด์ค ํ๊ฒฝ์์ ์์
์ ํ์ ์ถ๊ฐ๋๊ณ BullMQ๋ฅผ ์ฌ์ฉํ์ฌ ๋จ์ผ ์ธ์คํด์ค์์๋ง ์ฒ๋ฆฌ๋์ด ์์ฐจ์ ์ธ ์์
์ฒ๋ฆฌ์ ์ํ ํ์ฅ์ฑ์ ๋ณด์ฅํฉ๋๋ค. PM2๋ ํ๋ก๋์
ํ๊ฒฝ์์ Node.js ์ ํ๋ฆฌ์ผ์ด์
์ ์คํํ๋ ์ธ๊ธฐ ์๋ ํ๋ก์ธ์ค ๊ด๋ฆฌ์์ด์ง๋ง ๋จ์ผ ์ธ์คํด์ค cron ์์
๊ณผ ํ์ผ์ค๋ฒ์ ๋ํ ์ง์์ด ๋ถ์กฑํฉ๋๋ค. ์ ๋ฐ์ ์ผ๋ก ์ ๊ธ ๋ฉ์ปค๋์ฆ๊ณผ ์์
๊ด๋ฆฌ ์ ๋ต์ ์ฌ์ฉํ๋ฉด ์ค๋ณต ์์
์ ๋ฐฉ์งํ๊ณ ๋ฉํฐ ์ธ์คํด์ค ํ๊ฒฝ์์ ์ผ๊ด์ฑ์ ๋ณด์ฅํ๋ ๋ฐ ๋์์ด ๋ ์ ์์ต๋๋ค.
dev.to
๐ดManaging Cron Jobs with NestJS: Solving Multi-Instance Issues and Locking Mechanisms
Create attached notes ...