๐ฉ๐ป๐ป/celery + redis9 [Celery] ๊ฐ๋จํ๊ฒ ์ฑ๋ฅ ์ฒดํฌ ์คํ ํ CPU ์ฌ์ฉ๋ ๋ฐ Celery Worker ์ํ๋ฅผ ๋ชจ๋ํฐ๋งํ๋ ค ํ๋ค. โ Celery Worker ํ๋ก์ธ์ค ํ์ธps aux | grep "celery worker" โ CPU & ๋ฉ๋ชจ๋ฆฌ ์ฌ์ฉ๋ ์ฒดํฌhtop โ Redis์ ๋๊ธฐ ์ค์ธ ์์ ํ์ธredis-cli llen celery → ๋ง์ฝ ๋๊ธฐ ์ค์ธ ์์ ๊ฐ์ ํ์ธํ๊ณ ์ ์ ํ concurrency ์กฐ์ → ๋ฉ๋ชจ๋ฆฌ ์ฌ์ฉ๋๋ ๊ณ ๋ คํด์ concurrency ์กฐ์ 2025. 2. 19. [Celery] ์ ์ ํ concurrency ๊ฐ ์ค์ ํ๊ธฐ ๊ฐ์Celery์์ concurrency ๊ฐ์ ํ ๋ฒ์ ๋ช๊ฐ์ ์์ ์ ๋์์ ์คํํ ์ง ๊ฒฐ์ ํ๋ ์ค์ํ ์ค์ ์ด๋ค.์ ์ ํ concurrency ๊ฐ์ ์ด๋ป๊ฒ ์ค์ ํ ๊น .. (ํ๋์จ์ด, ์ํฌ๋ก๋, ์์ ํน์ฑ์ ๋ฐ๋ผ ๋ค๋ฅด๋ค!)ํ์ธconcurrencyCelery๋ ๊ธฐ๋ณธ์ ์ผ๋ก Prefork (multiprocessing) ๋ชจ๋๋ฅผ ์ฌ์ฉconcurrency๋ ๊ฐ worker๊ฐ ๋์์ ์ฒ๋ฆฌํ ์ ์๋ ์์ ๊ฐ์๋ฅผ ์๋ฏธํ๋ค.worker๋ ์ค์ ๋ก Task๋ฅผ ์คํํ๋ ํ๋ก์ธ์ค(์์ ๋จ์)๋ฅผ ์๋ฏธํ๋ค.1๏ธโฃ CPU ์ฝ์ด ์Celery๊ฐ CPU ์ฐ์ฐ์ ๋ง์ด ์ฌ์ฉํ๋ ์์ (์: ๋จธ์ ๋ฌ๋, ์ด๋ฏธ์ง ์ฒ๋ฆฌ ๋ฑ)์ ์คํํ๋ค๋ฉด, CPU ์ฝ์ด ์ ๊ธฐ์ค์ผ๋ก ์ค์ CPU ์ฝ์ด ๊ฐ์์ ์ ํ concurrency ๊ฐ2 ์ฝ์ด2~44 ์ฝ์ด4~88 ์ฝ์ด8~.. 2025. 2. 19. Redis ์ค์๊ฐ ๋ชจ๋ํฐ๋ง ๊ฐ์ํ ์คํธ ์งํํ๋๋ฐ redis๋ฅผ ์ค์๊ฐ ๋ชจ๋ํฐ๋ง ํ๋ ค๊ณ ํจ์งํRedis ์ค์๊ฐ ๋ก๊ทธRedis์ ๋ชจ๋ ์์ฒญ์ ์ค์๊ฐ์ผ๋ก ํ์ธํ๋ ๋ช ๋ น์ด:redis-cli monitor → Redis์ ๋ชจ๋ ์์ ์ ์ค์๊ฐ์ผ๋ก ํ์ธํ๋ค. ๋๋ฌด ๋ง์ ๋ก๊ทธ๊ฐ ์ถ๋ ฅ๋๊ณ ์์ด์ ๊ฐ๋ ์ฑ์ด ์ข์ง ์๋ค. Celery ์์ฒด ๋ชจ๋ํฐ๋งRedis์ ๋ก๊ทธ ์ค์์ ๋ด๊ฐ ๋ฑ๋กํ celery app์ ๋ํ ๋ก๊ทธ๋ง ์ถ๋ ฅํ๊ณ ์ถ์ด์ ์ฐพ์๋ดค๋๋ฐ, Celery์์ ์คํ๋๋ ์์ ์ ์ค์๊ฐ์ผ๋ก ํ์ธํ ์ ์๋ celery ์์ฒด ๋ชจ๋ํฐ๋ง์ด ์์๋ค.โ celery worker ์คํํ ๋ -E ์ต์ ์ถ๊ฐํด์ ์ด๋ฒคํธ ๋ก๊น ํ์ฑํํ๊ธฐ (์๋๋ฉด ์๋ฌด๊ฒ๋ ์๋ธ)pkill -9 -f "celery worker" # ๊ธฐ์กด ์์ปค ์ข ๋ฃcelery -A celery_tasks.c.. 2025. 2. 13. Redis and Celery ๊ฐ์Redis์ Celery์ ๊ด๊ณ๋ฅผ ์ข ๋ ์์ธํ๊ฒ ์ ๋ฆฌํด๋ณด๋ ค ํ๋ค.์ ๋ฆฌRedis์ Celery๋ ๋น๋๊ธฐ ํ์คํฌ ํ ์์คํ ์ ๊ตฌ์ถํ ๋ ์ฌ์ฉ๋๋ฉฐ, ๊ฐ๊ฐ ๋ฉ์์ง ๋ธ๋ก์ปค์ ๋ฐฑ์๋ ์ ์ฅ์ ์ญํ ์ ํ๋ค.Celery๋น๋๊ธฐ ์์ ์ฒ๋ฆฌ๋ฅผ ์ํ ๋ถ์ฐ ํ์คํธ ํ ์์คํ ์ผ๋ก, ๋ฉ์์ง ๋ธ๋ก์ปค(Message Broker)๋ฅผ ํตํด ์์ ๊ด๋ฆฌProducer (Client)์ฌ์ฉ์๊ฐ ์์ฒญ์ ๋ณด๋Celery๊ฐ ์์ฒญ์ ๋ฐ์ Redis์ ์์ ์ ๋ฑ๋ก(Queue)ํจBroker (Redis)Celery๊ฐ ์คํํด์ผ ํ ์์ ์ ํ(Queue) ํํ๋ก ์ ์ฅWorker๊ฐ ๋๊ธฐํ๋ค๊ฐ ์์ ์ ๊ฐ์ ธ๊ฐ์ ์คํWorker (Celery Worker)Redis์์ ์์ ์ ๊บผ๋ด ์คํํ๊ณ ๊ฒฐ๊ณผ๋ฅผ ์ ์ฅ์ฌ๋ฌ ๊ฐ์ Worker๊ฐ ๋์์ ์คํ ๊ฐ๋ฅ (๋ณ๋ ฌ ์ฒ๋ฆฌ)Bac.. 2025. 2. 12. Celery๋ฅผ ์ด์ฉํ ํฌ๋กค๋ง ์์ ๊ฐ์Airflow์ Celery๋ฅผ ๋น๊ตํ๋ค. ํฌ๋กค๋ง ๊ด๋ฆฌ Airflow vs Celery๊ฐ์๊ธฐ์กด ํ๋ก์ ํธ์ ํฌ๋กค๋ง ์์คํ ์ Airflow๋ก ๊ด๋ฆฌํ๋ค.Airflow ์ด์ ์ค์ด๋ ์๋ฒ์ ๋ฌธ์ ๊ฐ ๋ง์๋ ๋ฐ, ๊ทธ ์ค์์ ์ ์ผ ํฐ ๋ฌธ์ ๋ cpu ์ ์ ์จ์ด 100์ผ๋ก ์น์์ ๋๊ฐ ๋ง์๋ค๋ ๊ฒ์ด๋ค.Airflow๋ก ์ด์bonory.tistory.com ํฌ๋กค๋ง ์งํ ์, Celery๋ฅผ ์ฌ์ฉํ๋ ๊ฒ ๋ ์ ํฉํ๋ค๋ ํ๋จ๊ณผ ํจ๊ป ์์ ๋ฅผ ์์ฑํ๋ค. FastAPI + Celery + requests + BeautifulSoup ๋ฅผ ํ์ฉํ ํฌ๋กค๋ง ์์ ์ ์ํํ๋ ๊ธฐ๋ณธ์ ์ธ ๋ฐฉ๋ฒ์ ์์ ํฌ๋กค๋ง์ ๋ฐฑ๊ทธ๋ผ์ด๋์์ ์คํ๋๋๋ก ์งํ๊ธฐ๋ณธ ๊ตฌ์กฐFastAPI: ์ฌ์ฉ์๊ฐ API๋ฅผ ํตํด ํฌ๋กค๋ง ์์ฒญ์ ๋ณด๋Celery: ์์ฒญ์ ํ์ ๋ฃ๊ณ , ๋ฐฑ๊ทธ๋ผ์ด๋์์ .. 2025. 2. 5. [Redis] Redis์ ๋ํ ๊ฐ๋จํ ์ ๋ฆฌ โ Redis ?Remote Dictionary Server์ ์ฝ์* Remote : Redis๊ฐ ๊ฐ๊ฐ์ ์๋ฒ ์์ ๋ก์ปฌํ๊ฒ ์กด์ฌํ์ง ์๊ณ , ๋ค์์ ์๋ฒ์์ ๊ณตํต์ ์ผ๋ก ์ฌ์ฉํ ์ ์๋๋ก ์๊ฒฉ์ ์กด์ฌ* Dictionary : ํด์๋งต๊ณผ ๊ฐ์ด key-value ํํ๋ก ์์์ ์๊ฐ ๋ณต์ก๋๋ก ์ฌ์ฉ์ด ๊ฐ๋ฅ Redis๋ ํ์ค C๋ก ์์ฑ๋ ์คํ์์ค ์ธ๋ฉ๋ชจ๋ฆฌ ๋ฐ์ดํฐ ์ ์ฅ์์ด๋ค.* ์ธ๋ฉ๋ชจ๋ฆฌ ๋ฐ์ดํฐ ์ ์ฅ์ : ๋ฐฑ์ ์ ์ ์ธํ ๋ชจ๋ ๋ฐ์ดํฐ๋ฅผ ๋จ์ ์ ์ฅํ๋ค. ์ผ๋ฐ์ ์ผ๋ก ๋จ์ ๋์คํฌ์ ๋นํด ๋งค์ฐ ๋น ๋ฅด๊ธฐ ๋๋ฌธ์ Redis๋ ๊ธฐ๋ณธ์ ์ธ ๊ด๊ณํ ๋ฐ์ดํฐ ๋ฒ ์ด์ค์ ๋ค๋ฅธ ๊ตฌ์กฐ๋ฅผ ๊ฐ์ง๊ณ ์๋ค. โ ํน์ง1. In-Memory : ๋ชจ๋ ๋ฐ์ดํฐ๋ฅผ ๋จ์ ์ ์ฅ2. Single Thread3. Cluster Mode : ๋ค์ค ๋ ธ๋์ ๋ฐ์ดํฐ๋ฅผ ๋ถ์ฐ ์ ์ฅ .. 2023. 12. 4. [Flower] Monitoring Celery Tasks using Flower โ Flower ?Flower๋ Celery cluster๋ฅผ ๋ชจ๋ํฐ๋งํ๊ณ ๊ด๋ฆฌํ๊ธฐ ์ํ web ๊ธฐ๋ฐ tool์ด๋ค. 1๏ธโฃ ์์celery์ task๋ฅผ ํ์ธํด์ผ ํ๋, ์๋ ๋งํฌ๋ฅผ ํตํด celery๋ฅผ ์คํํ๋ค. [Celery] Celery with Redis (python) : ๋น๋๊ธฐ ์์ queueโ Celery ? celery๋ ๋ถ์ฐ ๋ฉ์์ง ์ ๋ฌ์ ๊ธฐ๋ฐ์ ๋ ์คํ ์์ค ๋น๋๊ธฐ ํ ์คํฌ ํ, ์ก ํ์ด๋ค. ์ค์ผ์ค๋ง์ ์ง์ํ์ง๋ง ์ค์๊ฐ ์ด์์ ์ด์ ์ ๋๊ณ ์๋ค. 1๏ธโฃ ์์ redis๊ฐ ์คํ๋์ด ์์ด์ผ ํ๋ค. (์๋bonory.tistory.com 2๏ธโฃ ์คํcelery๊ฐ ์ค์น๋์ด ์๊ณ , ์คํ ๊ฐ๋ฅํ ํ๊ฒฝ์ด๋ฉด ๋ณ๋์ ์ค์น์์ด ์๋์ ๋ช ๋ น์ด๋ก ๋ฐ๋ก ์ฌ์ฉ ๊ฐ๋ฅํ๋ค. python3 -m celery -A [app.. 2022. 6. 20. [Celery] Celery with Redis (python) : ๋น๋๊ธฐ ์์ queue โ Celery ?celery๋ ๋ถ์ฐ ๋ฉ์์ง ์ ๋ฌ์ ๊ธฐ๋ฐ์ ๋ ์คํ ์์ค ๋น๋๊ธฐ ํ ์คํฌ ํ, ์ก ํ์ด๋ค.์ค์ผ์ค๋ง์ ์ง์ํ์ง๋ง ์ค์๊ฐ ์ด์์ ์ด์ ์ ๋๊ณ ์๋ค. 1๏ธโฃ ์์redis๊ฐ ์คํ๋์ด ์์ด์ผ ํ๋ค. (์๋ ๋งํฌ ์ฐธ๊ณ ) [Redis] redis๋ฅผ ์์ํ๋ ๊ฐ๋จํ ๋ฐฉ๋ฒ 2๊ฐ์ง (docker/source download)โ Redis ? Remote Dictionary Server์ ์ฝ์๋ก์, "ํค-๊ฐ" ๊ตฌ์กฐ์ ๋น์ ํ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๊ณ ๊ด๋ฆฌํ๊ธฐ ์ํ ์คํ ์์ค ๊ธฐ๋ฐ์ ๋น๊ด๊ณํ ๋ฐ์ดํฐ๋ฒ ์ด์ค ๊ด๋ฆฌ ์์คํ ์ด๋ค. 1๏ธโฃ Docker ๋ฅผ ํ์ฉํ๋ ๋ฐฉ๋ฒ ์์bonory.tistory.com 2๏ธโฃ ์ค์นpip3 install celery 3๏ธโฃ ์คํtasks.py from celery import Celeryapp .. 2022. 6. 6. [Redis] redis๋ฅผ ์์ํ๋ ๊ฐ๋จํ ๋ฐฉ๋ฒ 2๊ฐ์ง (docker/source download) โ Redis ?Remote Dictionary Server์ ์ฝ์๋ก์, "ํค-๊ฐ" ๊ตฌ์กฐ์ ๋น์ ํ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๊ณ ๊ด๋ฆฌํ๊ธฐ ์ํ ์คํ ์์ค ๊ธฐ๋ฐ์ ๋น๊ด๊ณํ ๋ฐ์ดํฐ๋ฒ ์ด์ค ๊ด๋ฆฌ ์์คํ ์ด๋ค. 1๏ธโฃ Docker ๋ฅผ ํ์ฉํ๋ ๋ฐฉ๋ฒ์์ํ๊ธฐ์ ์์ docker๊ฐ ์ค์น๋์ด ์์ด์ผ ํ๋ค. (์๋ ๋งํฌ๋ก ์ ์ํ์ฌ ์ค์น) Docker Documentation docs.docker.com ํฐ๋ฏธ๋(ํน์ iterm)์์ ์๋ ๋ช ๋ น์ด๋ฅผ ์คํํ๋ค. docker run -p 6379:6379 redis ์ฑ๊ณต์ ์ผ๋ก ์คํ์ด ๋์์ ๊ฒฝ์ฐ, ๋ค์๊ณผ ๊ฐ์ด ํ์ธํ ์ ์๋ค. Docker์์ redis Container๊ฐ ์์ฑ๋จ์ ํ์ธํ ์ ์๋ค. ์ ์์ ์ผ๋ก ์ฐ๊ฒฐ๋์๋์ง ํ์ธํ๊ธฐ ์ํด์ vscode์์ ํ์ธํด๋ณด์๋ค. def check_con.. 2022. 6. 6. ์ด์ 1 ๋ค์