Celery: ์…€๋Ÿฌ๋ฆฌ ๋ฌธ์ œ ๋‹ค์‹œ ์‹œ์ž‘ ๋ฐ Supervisord ๊ตฌ์„ฑ ํŒŒ์ผ ๊ฐœ์„ 

์— ๋งŒ๋“  2010๋…„ 05์›” 09์ผ  ยท  16์ฝ”๋ฉ˜ํŠธ  ยท  ์ถœ์ฒ˜: celery/celery

๋‚˜๋Š” ์…€๋Ÿฌ๋ฆฌ ์ €์žฅ์†Œ์˜ ์˜ˆ๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•˜๋Š” ๊ฐ๋…์ž ๊ตฌ์„ฑ ํŒŒ์ผ์„ ์‚ฌ์šฉํ•˜๊ณ  ์…€๋Ÿฌ๋ฆฌ ์žฌ์‹œ์ž‘์ด ๋ฐœ์ƒํ•  ๋•Œ ๋ช‡ ๊ฐ€์ง€ ๋ฌธ์ œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ๋•Œ๋•Œ๋กœ ๋กœ๊ทธ์— ์˜ค๋ฅ˜ ๋ฉ”์‹œ์ง€ ์—†์ด ์…€๋Ÿฌ๋ฆฌ๋ฅผ ๋‹ค์‹œ ์‹œ์ž‘ํ•œ ํ›„ ์ž‘์—… ์ฒ˜๋ฆฌ๊ฐ€ ์ž๋™์œผ๋กœ ์ค‘์ง€๋ฉ๋‹ˆ๋‹ค. ํ”„๋กœ์„ธ์Šค๋Š” ํ”„๋กœ์„ธ์Šค ๋ชฉ๋ก์— ๊ณ„์† ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค.

๋งˆ์ง€๋ง‰์œผ๋กœ ๋‚˜๋Š” ๋•Œ๋•Œ๋กœ ํ”„๋กœ์„ธ์Šค๊ฐ€ ๋‹ค์‹œ ์‹œ์ž‘๋  ๋•Œ ์ƒ๋Ÿฌ๋ฆฌ๊ฐ€ ๊ฐ๋…์ž๊ฐ€ ๊ด€๋ฆฌํ•˜์ง€ ์•Š๋Š” ์ถ”๊ฐ€ ํ”„๋กœ์„ธ์Šค๋ฅผ ์ƒ์„ฑํ•˜๊ณ  ์ด๋กœ ์ธํ•ด ์ด๋Ÿฌํ•œ ๋ฒ„๊ทธ๊ฐ€ ๋ฐœ์ƒํ•œ๋‹ค๋Š” ๊ฒƒ์„ ์•Œ์•„๋ƒˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ž˜์„œ ๋‹ค์‹œ ์‹œ์ž‘ํ•  ๋•Œ๋งˆ๋‹ค ps ์ถœ๋ ฅ์„ ์ฃผ์˜ ๊นŠ๊ฒŒ ๊ด€์ฐฐํ•˜๊ณ  kill์„ ํ†ตํ•ด ์ถ”๊ฐ€ ํ”„๋กœ์„ธ์Šค๋ฅผ ์ˆ˜๋™์œผ๋กœ ์ฃฝ์ด๊ธฐ ์‹œ์ž‘ํ–ˆ์Šต๋‹ˆ๋‹ค.. ์ด๋Ÿฌํ•œ ํ”„๋กœ์„ธ์Šค๋ฅผ ์ข…๋ฃŒํ•˜๋ฉด ์ž‘์—…์ด ์ œ๋Œ€๋กœ ์‹คํ–‰๋˜๊ธฐ ์‹œ์ž‘ํ•ฉ๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ์ผ์ฃผ์ผ ์ •๋„ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๋Š” ์ผ์ข…์˜ ํ•ดํ‚น์ž…๋‹ˆ๋‹ค.

๊ทธ๋ฆฌ๊ณ  ์˜ค๋Š˜ ๊ทธ ์ง„์งœ ์ด์œ ๋ฅผ ์ฐพ์€ ๊ฒƒ ๊ฐ™์•„์š”. 'stopwaitsecs' ์˜ต์…˜์˜ ๊ธฐ๋ณธ ๊ด€๋ฆฌ์ž ๊ฐ’์€ 10์ดˆ์ž…๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ 10์ดˆ ํ›„์— ์…€๋Ÿฌ๋ฆฌ ํ”„๋กœ์„ธ์Šค๊ฐ€ TERM ๋Œ€์‹  KILL ์‹ ํ˜ธ๋กœ ์ข…๋ฃŒ๋จ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค. ์ƒ๋Ÿฌ๋ฆฌ๋Š” ์ฃฝ์ž„์„ ๋‹นํ•˜๋Š” ๊ฒƒ์„ ์‹ซ์–ดํ•˜๊ณ  ๊ทธ ๊ฒฝ์šฐ์— ์ถ”๊ฐ€ ํ”„๋กœ์„ธ์Šค๋ฅผ ์ƒ์„ฑํ•˜๋ ค๊ณ  ํ•˜๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

๋”ฐ๋ผ์„œ ๋ชจ๋“  Supervisord ์˜ˆ์ œ ๊ตฌ์„ฑ ํŒŒ์ผ์— 'stopwaitsecs=600'๊ณผ ๊ฐ™์€ ๊ฒƒ์„ ์ถ”๊ฐ€ํ•˜๋Š” ๊ฒƒ์ด ์ข‹์„ ๊ฒƒ์ด๋ผ๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ์ข…๋ฃŒํ•  ๊ธฐํšŒ๋ฅผ ์–ป๊ธฐ ์œ„ํ•ด ๋ช‡ ๋ถ„์„ ๊ธฐ๋‹ค๋ ธ์Šต๋‹ˆ๋‹ค.") KILL ์‹ ํ˜ธ์— ๋Œ€ํ•œ ์…€๋Ÿฌ๋ฆฌ๋“œ ๋™์ž‘์„ ์กฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค. ๊ณผ์ •์ด ์ข€ ์ด์ƒํ•ฉ๋‹ˆ๋‹ค.

๊ฐ€์žฅ ์œ ์šฉํ•œ ๋Œ“๊ธ€

Celery ์ž‘์—…์ž๋ฅผ ์ข…๋ฃŒํ•˜๋Š” ๋ฐ ์—ฌ์ „ํžˆ ๋ฌธ์ œ๊ฐ€ ์žˆ๋Š” ๊ฒฝ์šฐ stopwaitsecs $ ์„ ๋Š˜๋ฆฌ๊ธฐ ์ „์— stopasgroup=true ์„ค์ •์„ ์‹œ๋„ํ•ด ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋ชจ๋“  16 ๋Œ“๊ธ€

KILL ์‹ ํ˜ธ๋ฅผ ์ˆ˜์‹ ํ•  ๋•Œ ์ƒ์„ฑ๋˜๋Š” ํ”„๋กœ์„ธ์Šค๋Š” ์‹ค์ œ๋กœ ์ด์ƒํ•ฉ๋‹ˆ๋‹ค. supervisord ์™ธ๋ถ€์—์„œ ์‚ฌ์šฉ๋  ๋•Œ ๊ทธ ๋™์ž‘์ด ๋ณด์ด์ง€ ์•Š์œผ๋ฏ€๋กœ ์•„๋งˆ๋„ ์ด๊ฒƒ์œผ๋กœ ์ธํ•ด ๋ฐœ์ƒํ•œ ๊ฒƒ์ž…๋‹ˆ๊นŒ?

setproctitle ๋ชจ๋“ˆ์„ ์„ค์น˜ํ•˜๋ฉด ์…€๋Ÿฌ๋ฆฌ๋Š” ps ๋ชฉ๋ก์— ํ”„๋กœ์„ธ์Šค ์ข…๋ฅ˜๋ฅผ ๋ณด๊ณ ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์–ด๋–ค ์ข…๋ฅ˜์˜ ํ”„๋กœ์„ธ์Šค๊ฐ€ ์ƒ์„ฑ๋˜๋Š”์ง€ ์กฐ์‚ฌํ•˜๊ธฐ ์œ„ํ•ด ๊ทธ๋ ‡๊ฒŒ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ?

( easy_install setproctitle )

์‹œ๊ฐ„ ์ œํ•œ์„ 600 ๋กœ ์„ค์ •ํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค. ๋ฌดํ•œ๋Œ€์— ๋Œ€ํ•œ ์„ค์ •์ด ์žˆ์Šต๋‹ˆ๊นŒ(๋„ˆ๋ฌด ์˜ค๋ž˜ ๊ฑธ๋ฆฌ๋ฉด ๊ฒฝ๊ณ ๊ฐ€ ํ‘œ์‹œ๋  ์ˆ˜ ์žˆ์Œ)? celeryd ๊ฐ€ TERM (์„ ํ˜ธ๋˜๋Š” ์ข…๋ฃŒ ์‹ ํ˜ธ)๋ฅผ ํ†ตํ•ด ์ข…๋ฃŒ๋˜๋ฉด ๋ฉ”์‹œ์ง€ ์ˆ˜์‹ ์„ ์ค‘์ง€ํ•˜๊ณ  ํ˜„์žฌ ์‹คํ–‰ ์ค‘์ธ ์ž‘์—…์ด ์™„๋ฃŒ๋  ๋•Œ๊นŒ์ง€ ๊ธฐ๋‹ค๋ฆฝ๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๋Œ€๋ถ€๋ถ„์˜ ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์—์„œ ์ค‘๊ฐ„ ์‹คํ–‰ ์ข…๋ฃŒ๋Š” ํ—ˆ์šฉ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

ํ”„๋กœ์„ธ์Šค ์ƒ์„ฑ์— ๊ด€ํ•ด์„œ: setproctitle ๋ฐ ํ”„๋กœ์„ธ์Šค ID๋ฅผ ๊ด€์ฐฐํ•˜๋Š” ๊ฒƒ์ด ๋„์›€์ด ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ํ”„๋กœ์„ธ์Šค ์ƒ์„ฑ์ด ์•„๋‹™๋‹ˆ๋‹ค. ์ƒ์œ„ ํ”„๋กœ์„ธ์Šค๊ฐ€ ์ข…๋ฃŒ๋  ๋•Œ ์ž‘์—…์ž ํ”„๋กœ์„ธ์Šค๋Š” ํ™œ์„ฑ ์ƒํƒœ๋กœ ์œ ์ง€๋ฉ๋‹ˆ๋‹ค.
์ด๊ฒƒ์€ ์ˆ˜๋™ ์ข…๋ฃŒ ๋ฐ ์ œ๋กœ ํƒ€์ž„์•„์›ƒ์„ ์‚ฌ์šฉํ•œ ๊ฐ๋…์ž ์žฌ์‹œ์ž‘ ์‹œ๋ฎฌ๋ ˆ์ด์…˜์ž…๋‹ˆ๋‹ค.

 4976 ?        Ss     0:00 /usr/bin/python /usr/bin/supervisord --pidfile /var/run/supervisord.pid
 5422 ?        S      0:01  \_ [celerybeat] --schedule=/var/lib/celery/celerybeat-schedule-nadovmeste --loglevel=INFO                                                             
 6101 ?        Sl     0:00  \_ [celeryd.MainProcess] Running... (--loglevel=INFO)                                                           
 6108 ?        S      0:00      \_ [celeryd.PoolWorker-1]                                                                                       
 nadovmeste:~# kill 6101 & kill -9 6101 &

์ถ”์‹  -afx:

 4976 ?        Ss     0:00 /usr/bin/python /usr/bin/supervisord --pidfile /var/run/supervisord.pid
 5422 ?        S      0:01  \_ [celerybeat] --schedule=/var/lib/celery/celerybeat-schedule-nadovmeste --loglevel=INFO                                                             
 6867 ?        Sl     0:00  \_ [celeryd.MainProcess] Running... (--loglevel=INFO)                                                           
 6875 ?        S      0:00      \_ [celeryd.PoolWorker-1]                                                                                       
 6108 ?        S      0:00 [celeryd.PoolWorker-1]       

kill ์™€ kill -9 ์‚ฌ์ด์˜ ์ธ๊ณต ๋ ˆ์ด์Šค์—์„œ๋งŒ ์ด๊ฒƒ์„ ์žฌํ˜„ํ•  ์ˆ˜ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. ๋•Œ๋•Œ๋กœ ์ž‘์—…์ž๊ฐ€ ์ œ๋Œ€๋กœ ์ฃฝ์ž„์„ ๋‹นํ•ฉ๋‹ˆ๋‹ค. ์ฝ˜์†”์—์„œ celeryd๋ฅผ ์‹œ์ž‘ํ•  ๋•Œ ์žฌ์ƒ์‚ฐํ•  ์ˆ˜ ์—†๊ธฐ ๋•Œ๋ฌธ์— ์ด ๋ฌธ์ œ๋Š” ๊ฐ๋…์ž๋ณ„๋กœ ๋‹ค๋ฅธ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

๋ช‡ ๋ฒˆ์˜ ์‹œ๋„ ๋์— ์ฝ˜์†” ์‹œ์ž‘ ์Šคํฌ๋ฆฝํŠธ๋กœ ์ด๊ฒƒ์„ ์žฌํ˜„ํ•  ์ˆ˜ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค.

/home/nadovmeste/envs/nadovmeste/bin/python /home/nadovmeste/src/nadovmeste/manage.py celeryd -B --loglevel=INFO&

๊ทธ๋Ÿฐ ๋‹ค์Œ ๋‹ค๋ฅธ ํ„ฐ๋ฏธ๋„ ์„ธ์…˜์—์„œ:

nadovmeste:~# ps -afx

 6450 ?        Ss     0:00  \_ sshd: root@pts/2 
 6452 pts/2    Ss+    0:00      \_ -bash
 9343 pts/2    Sl     0:00          \_ [celeryd.MainProcess] Running... (-B --loglevel=INFO)                                                           
 9350 pts/2    S      0:00              \_ [celeryd.PoolWorker-2]                                                                                          
 9355 pts/2    S      0:00              \_ [celerybeat]     

nadovmeste:~# kill 9343 & kill -9 9343

nadovmeste:~# ps -afx

 4526 ?        Ss     0:00  \_ sshd: root@pts/1 
 4529 pts/1    Ss     0:00  |   \_ -bash
 9366 pts/1    R+     0:00  |       \_ ps -afx
 6450 ?        Ss     0:00  \_ sshd: root@pts/2 
 6452 pts/2    Ss+    0:00      \_ -bash    
 ...
 9350 pts/2    S      0:00 [celeryd.PoolWorker-2]                                                                                          
 9355 pts/2    S      0:00 [celerybeat]

Supervisord ๋ฌธ์„œ์—์„œ ๊ฒฝ๊ณ ์™€ ํ•จ๊ป˜ ๋ฌดํ•œ ์‹œ๊ฐ„ ์ดˆ๊ณผ์— ๋Œ€ํ•œ ํŠน๋ณ„ํ•œ ์˜ต์…˜์„ ์ฐพ์ง€ ๋ชปํ–ˆ์Šต๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๊ฐ€ ์›ํ•˜๋Š” ๊ฒƒ์ด๋ผ๋ฉด ์•„๋งˆ๋„ ๋งค์šฐ ํฐ ์ˆซ์ž๋กœ ์ถฉ๋ถ„ํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

-B ์˜ต์…˜์„ ์‚ฌ์šฉํ•œ ํ›„์—๋งŒ ์ฝ˜์†” ์‹œ์ž‘ celeryd์— ๋Œ€ํ•œ ๋ฌธ์ œ๋ฅผ ์žฌํ˜„ํ•  ์ˆ˜ ์žˆ์—ˆ๊ธฐ ๋•Œ๋ฌธ์— celerybeat์™€ ๊ด€๋ จ๋œ ๊ฒƒ์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋กœ์ปฌ์—์„œ ์ผ๋ถ€ ์…€๋Ÿฌ๋ฆฌ ์ž‘์—…์„ ํ…Œ์ŠคํŠธํ•˜๊ณ  -B ์˜ต์…˜์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ ctrl-c๋ฅผ ์‚ฌ์šฉํ•  ๋•Œ ํ”„๋กœ์„ธ์Šค๊ฐ€ ์ข…๋ฃŒ๋˜์ง€ ์•Š๋Š” ๊ฒฝ์šฐ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

๋กœ์ปฌ์—์„œ ์žฌํ˜„ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. Btw, ๋งˆ์Šคํ„ฐ ๋ธŒ๋žœ์น˜๋ฅผ ์‹คํ–‰ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๊นŒ? ์ข…๋ฃŒ๋ฅผ ๋ฉˆ์ถœ ์ˆ˜ ์žˆ๋Š” ๋ฒ„๊ทธ๋ฅผ ์ˆ˜์ •ํ–ˆ์Šต๋‹ˆ๋‹ค. ์ด๊ฒƒ์œผ๋กœ ํ…Œ์ŠคํŠธ ํ•  ์ˆ˜ ์žˆ๋‹ค๋ฉด ์ข‹์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์˜ˆ, ์ตœ์‹  ๋งˆ์Šคํ„ฐ ๋ธŒ๋žœ์น˜๋ฅผ ์‹คํ–‰ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๋ฒ„๊ทธ ์ˆ˜์ • ์ปค๋ฐ‹์„ ๋ณด๊ณ  ๋„์›€์ด ๋˜๊ธฐ๋ฅผ ๋ฐ”๋ž์ง€๋งŒ ์ œ ๊ฒฝ์šฐ์—๋Š” ๋„์›€์ด ๋˜์ง€ ์•Š๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ์ตœ์‹  ์…€๋Ÿฌ๋ฆฌ๋Š” ๋˜‘๊ฐ™์ด ์ž‘๋™ํ•˜๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์ดˆ๊ธฐ ๋ฌธ์ œ๊ฐ€ ํ•ด๊ฒฐ๋˜์—ˆ์„ ๊ฐ€๋Šฅ์„ฑ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ์ฆ‰์„ ์ข…๋ฃŒ๋กœ๋งŒ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค. ์ง€๊ธˆ ๋‚ด ์†์„ ๊ฐ์Œ€ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค :) ctrl-c ๋ฌธ์ œ๋Š” ๋‚ด ์„ค์ •์œผ๋กœ ์žฌํ˜„ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

๋”ฐ๋ผ์„œ ๋ฒ„๊ทธ ๋ณด๊ณ ์„œ๋Š” ๋‹จ์ˆœํ™”๋˜์—ˆ์Šต๋‹ˆ๋‹ค. http://gist.github.com/401028 . ๊ฒฐ๊ณผ๋Š” ํ•ญ์ƒ ๋™์ผํ•ฉ๋‹ˆ๋‹ค(๊ฐ€๋”์€ ์•„๋‹˜). ์ •๊ธฐ์ ์ธ ์ž‘์—…๊ณผ ๋น„์ •๊ธฐ์ ์ธ ์ž‘์—…์ด ์žˆ์Šต๋‹ˆ๋‹ค. ์ž‘์—…์€ ๊ฐ„๋‹จํ•˜๊ณ  ์™„๋ฃŒํ•˜๋Š” ๋ฐ ๋งŽ์€ ์‹œ๊ฐ„์ด ๊ฑธ๋ฆฌ์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋ฉ”์ธ ํ”„๋กœ์„ธ์Šค๋ฅผ ์ฃฝ์ธ ํ›„ ์ž์‹ ํ”„๋กœ์„ธ์Šค๊ฐ€ ์‚ด์•„ ๋‚จ๋Š” ๊ฒƒ์ด ๋ฒ„๊ทธ์ž…๋‹ˆ๊นŒ? ๊ทธ๋ ‡๋‹ค๋ฉด ์žฌํ˜„ํ•  ์ˆ˜ ์—†๋‹ค๋ฉด ์ตœ์†Œํ•œ์˜ ํ”„๋กœ์ ํŠธ๋ฅผ ์ œ๊ณตํ•˜๋„๋ก ๋…ธ๋ ฅํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

celerybeat ์ข…๋ฃŒ ๋™์ž‘์€ ํฅ๋ฏธ๋กญ์Šต๋‹ˆ๋‹ค. hang(?) celerybeat ํ”„๋กœ์„ธ์Šค๋ฅผ ์ข…๋ฃŒํ•˜๋ฉด hang(?) ์ž‘์—…์ž ํ”„๋กœ์„ธ์Šค๋„ ์ข…๋ฃŒ๋ฉ๋‹ˆ๋‹ค.

@kmike ์—ฌ์ „ํžˆ ์œ„์˜ ๋ช…๋ น์œผ๋กœ ์žฌํ˜„ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ๋‚ด๊ฐ€ OS X๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ๊ธฐ ๋•Œ๋ฌธ์ผ ์ˆ˜๋„ ์žˆ๊ณ , ์•„๋‹ˆ๋ฉด Python 2.5๋ฅผ ์‹คํ–‰ ์ค‘์ด๊ธฐ ๋•Œ๋ฌธ์ผ ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค. (์ €๋Š” 2.6.1์„ ์‹คํ–‰ ์ค‘์ž…๋‹ˆ๋‹ค)

--loglevel=DEBUG? ๋กœ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ค‘์ง€ ์œ„์น˜์— ๋Œ€ํ•œ ์ •๋ณด๋ฅผ ์ œ๊ณตํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

celerybeat ํ”„๋กœ์„ธ์Šค๋Š” ๋ฉ”์ธ ํ”„๋กœ์„ธ์Šค์— ์˜ํ•ด ์‹œ์ž‘๋˜๋ฏ€๋กœ ๋ฉ”์ธ ํ”„๋กœ์„ธ์Šค๊ฐ€ ๋Œ€๊ธฐ ์ค‘์ด๋ผ๊ณ  ๊ฐ€์ •ํ•ฉ๋‹ˆ๋‹ค.
celerybeat๊ฐ€ ๋‚˜๋จธ์ง€ ํ’€ ํ”„๋กœ์„ธ์Šค๋ฅผ ์ข…๋ฃŒํ•˜๊ธฐ ์ „์— ์ข…๋ฃŒํ•ฉ๋‹ˆ๋‹ค.

๋ฉ”์ธ ํ”„๋กœ์„ธ์Šค๊ฐ€ ์ข…๋ฃŒ๋˜์—ˆ๋‹ค๊ณ  ์ƒ๊ฐํ–ˆ๋Š”๋ฐ ํ”„๋กœ์„ธ์Šค ๋ชฉ๋ก์— ํ‘œ์‹œ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ํ”„๋กœ์„ธ์Šค ๊ด€๋ฆฌ์— ๋Œ€ํ•œ ๊ฒฝํ—˜์ด ๋งŽ์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

๋‚ด ์„ค์ •์€ Debian Lenny + python 2.5์ž…๋‹ˆ๋‹ค.

--loglevel=DEBUG๋กœ celeryd๋ฅผ ์‹คํ–‰ํ•˜๊ณ  ๋‚ด ๋งฅ๋ถ์—์„œ ์žฌํ˜„ํ•˜๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค.

ํ , ๋‹น์‹  ๋ง์ด ๋งž์•„์š”. ๋น„ํŠธ ํ”„๋กœ์„ธ์Šค๊ฐ€ ํ’€ ํ”„๋กœ์„ธ์Šค์˜ ์†Œ์œ ๊ถŒ์„ ๊ฐ€์ ธ์˜ค๋Š” ๊ฒƒ๊ณผ ๊ฑฐ์˜ ๊ฐ™์Šต๋‹ˆ๋‹ค.

๋ฐฉ๊ธˆ python 2.5๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ Debian Lenny์—์„œ ์žฌํ˜„ํ•˜๋ ค๊ณ  ํ–ˆ๊ณ  ๋ฐ”๋กœ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค.
TERM๊ณผ INT๋กœ ์ฃฝ์ด๋ ค๊ณ  ํ–ˆ์Šต๋‹ˆ๋‹ค.

๋„์›€์„ ์ฃผ์…”์„œ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค.

๊ฐ๋…์ž ์‹œ๊ฐ„ ์ดˆ๊ณผ์™€ ๋ฒ„๊ทธ ์ˆ˜์ • ์ปค๋ฐ‹์œผ๋กœ ์ดˆ๊ธฐ ๋ฌธ์ œ๊ฐ€ ํ•ด๊ฒฐ๋˜์—ˆ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. kill -9 ๋ช…๋ น์„ ์‚ฌ์šฉํ•˜๊ณ  TERM ๋Œ€์‹  KILL ์‹ ํ˜ธ๋ฅผ ๋ณด๋‚ด๊ธฐ ๋•Œ๋ฌธ์— ์‹œ๋ฎฌ๋ ˆ์ด์…˜์ด ์ž˜๋ชป๋˜์—ˆ์Šต๋‹ˆ๋‹ค. TERM ์‹ ํ˜ธ ํ”„๋กœ์„ธ์Šค๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์ œ๋Œ€๋กœ ์ข…๋ฃŒ๋ฉ๋‹ˆ๋‹ค.

๊ฐ๋…์ž๋Š” TERM ์‹ ํ˜ธ๋ฅผ ์‚ฌ์šฉํ•˜๋ฏ€๋กœ ๋ชจ๋“  ๊ฒƒ์ด ์ •์ƒ์ด์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

ํ•˜์ง€๋งŒ ์กฐ๊ธˆ ๋‘๋ ค์šด ๊ฒƒ์€ ์ดˆ๊ธฐ ๋ฒ„๊ทธ๊ฐ€ ์กฐ์‚ฌ๋˜์ง€ ์•Š์•˜๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์žฌํ˜„ํ•ด๋ณด๊ณ  ์•Œ๋ ค๋“œ๋ฆฌ๊ฒ ์Šต๋‹ˆ๋‹ค.

์•„! ์ •๋ง ์ฃ„์†กํ•ฉ๋‹ˆ๋‹ค. ๋‚˜๋Š” ๋ฌธ์ œ๋ฅผ ์ถฉ๋ถ„ํžˆ ์ฃผ์˜ ๊นŠ๊ฒŒ ์ฝ์ง€ ์•Š์•˜๋‹ค. ๋„ค! SIGKILL๋กœ ์ฃฝ์ผ ๋•Œ ์ผ์–ด๋‚˜๋Š” ์ผ์ž…๋‹ˆ๋‹ค. 9 ์‹ ํ˜ธ๋ฅผ ์žก์„ ์ˆ˜ ์—†์œผ๋ฏ€๋กœ ์ด AFAIK์— ๋Œ€ํ•ด ์šฐ๋ฆฌ๊ฐ€ ํ•  ์ˆ˜ ์žˆ๋Š” ์ผ์€ ์—†์Šต๋‹ˆ๋‹ค.

Celery ์ž‘์—…์ž๋ฅผ ์ข…๋ฃŒํ•˜๋Š” ๋ฐ ์—ฌ์ „ํžˆ ๋ฌธ์ œ๊ฐ€ ์žˆ๋Š” ๊ฒฝ์šฐ stopwaitsecs $ ์„ ๋Š˜๋ฆฌ๊ธฐ ์ „์— stopasgroup=true ์„ค์ •์„ ์‹œ๋„ํ•ด ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ด ํŽ˜์ด์ง€๊ฐ€ ๋„์›€์ด ๋˜์—ˆ๋‚˜์š”?
0 / 5 - 0 ๋“ฑ๊ธ‰