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

Redis ์‹ค์‹œ๊ฐ„ ๋ชจ๋‹ˆํ„ฐ๋ง

by ๋ฐ”์ฟ„๋ฆฌ 2025. 2. 13.

๊ฐœ์š”

ํ…Œ์ŠคํŠธ ์ง„ํ–‰ํ•˜๋Š”๋ฐ 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.celery_app worker --loglevel=info -E

 

์ฝ”๋“œ ์ƒ์—์„œ ์ถ”๊ฐ€ํ•ด๋„ ๋จ

celery_app.conf.update(
    worker_send_task_events=True,  # ์ด๋ฒคํŠธ ๋กœ๊น… ๊ธฐ๋ณธ ํ™œ์„ฑํ™”
    task_track_started=True  # ํƒœ์Šคํฌ๊ฐ€ ์‹œ์ž‘๋œ ์ƒํƒœ๋„ ์ถ”์ 
)

 

์‹ค์‹œ๊ฐ„ ๋ชจ๋‹ˆํ„ฐ๋ง

celery -A celery_tasks.celery_app events

 

๋ชจ๋‹ˆํ„ฐ๋ง ์‹คํ–‰๋œ ์ƒํƒœ์—์„œ celery task ์‹คํ–‰ ์š”์ฒญ์„ ๋ณด๋ƒˆ๋‹ค

# Request
curl -X POST "http://127.0.0.1:8000/crawl/?url=https://example.com"

# Response
{"task_id":"051dd5aa-4a8a-4272-94e1-c6b5f982f4cb","message":"Crawling started for https://example.com"}

 

์‹ค์‹œ๊ฐ„ ๋ชจ๋‹ˆํ„ฐ๋ง์— Task ์ƒ์„ฑ๋˜๊ณ  State๊ฐ€ STARTED๋กœ ์—…๋ฐ์ดํŠธ๋จ

 

์‹คํ–‰ ์™„๋ฃŒ ํ›„ State๊ฐ€ SUCCESS๋กœ ์—…๋ฐ์ดํŠธ๋จ

 

์—ฌ๋Ÿฌ๊ฐœ ๋งŽ์ด ์š”์ฒญํ•  ๊ฒฝ์šฐ ์•„๋ž˜์™€ ๊ฐ™์ด ์ž˜ ์Œ“์ด๋Š” ๊ฒƒ๋„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋•…

 

โ˜…โ˜† Task๋ฅผ ์‹ค์‹œ๊ฐ„์œผ๋กœ ๋ชจ๋‹ˆํ„ฐ๋ง ํ•˜๊ณ  ์‹ถ์„ ๋•Œ ์ด๋ ‡๊ฒŒ ์‚ฌ์šฉํ•ด๋ณด์ž !! โ˜†โ˜