๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
  • ๐Ÿ‘ฉ๐Ÿปโ€๐Ÿ’ป ๐ŸŒฎ ๐Ÿ’ฌ

๐Ÿ‘ฉ๐Ÿป‍๐Ÿ’ป/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.