Celery: Systemd : ์…€๋Ÿฌ๋ฆฌ๋ฅผ ๋‹ค์‹œ๋กœ๋“œํ•˜๋ฉด ์…€๋Ÿฌ๋ฆฌ๊ฐ€ ๊นจ๋—ํ•˜๊ฒŒ ์ข…๋ฃŒ๋˜์ง€๋งŒ ๋‹ค์‹œ ์‹œ์ž‘๋˜์ง€๋Š” ์•Š์Šต๋‹ˆ๋‹ค.

์— ๋งŒ๋“  2017๋…„ 11์›” 15์ผ  ยท  3์ฝ”๋ฉ˜ํŠธ  ยท  ์ถœ์ฒ˜: celery/celery

์ฒดํฌ๋ฆฌ์ŠคํŠธ

  • [x] Celery์˜ master ์ง€์ ์— ๋ฌธ์ œ๊ฐ€ ์žˆ์Œ์„ ํ™•์ธํ–ˆ์Šต๋‹ˆ๋‹ค.
  • [x] ๋ฌธ์ œ์— celery -A proj report ์˜ ๊ฒฐ๊ณผ๋ฅผ ํฌํ•จํ–ˆ์Šต๋‹ˆ๋‹ค.
software -> celery:4.1.0 (latentcall) kombu:4.1.0 py:3.5.2
            billiard:3.5.0.3 redis:2.10.6
platform -> system:Linux arch:64bit, ELF imp:CPython
loader   -> celery.loaders.app.AppLoader
settings -> transport:redis results:disabled

CACHES: {
    'default': {   'BACKEND': 'django_redis.cache.RedisCache',
                   'LOCATION': 'redis://localhost:6379/1',
                   'TIMEOUT': 3600}}

CELERY_TASK_COMPRESSION: 'gzip'
CELERY_TASK_IGNORE_RESULT: True
CELERY_ACCEPT_CONTENT: ['pickle', 'json', 'msgpack', 'yaml']
CELERY_BROKER_URL: 'redis://localhost:6379/0'

DEBUG: False
INSTALLED_APPS:
    ('django.contrib.auth',
 'django.contrib.contenttypes',
 'django.contrib.sessions',
 'django.contrib.sites',
 'django.contrib.messages',
 'django.contrib.admin',
 'django.contrib.sitemaps',
 'django.contrib.staticfiles',
 'django.contrib.humanize',
 'django.contrib.redirects',
 'django.contrib.gis',

 'django_extensions',
)

์žฌํ˜„ ๋‹จ๊ณ„

Ubuntu 16.04์—์„œ.

  1. ์…€๋Ÿฌ๋ฆฌ ๋ฌธ์„œ์— ๋”ฐ๋ผ systemd๋ฅผ ํ†ตํ•ด ์…€๋Ÿฌ๋ฆฌ ์„ค์ •
  2. sudo service <your-celery-service-name> start ๋ฅผ ํ†ตํ•ด ์…€๋Ÿฌ๋ฆฌ ์‹œ์ž‘
  3. sudo service <your-celery-service-name> reload ๋ฅผ ํ†ตํ•ด ์…€๋Ÿฌ๋ฆฌ๋ฅผ ๋‹ค์‹œ๋กœ๋“œ ํ•ด๋ณด์‹ญ์‹œ์˜ค.

์˜ˆ์ƒ๋˜๋Š” ํ–‰๋™

์…€๋Ÿฌ๋ฆฌ๋Š” ์ •์ƒ์ ์œผ๋กœ ๋‹ค์‹œ๋กœ๋“œ๋˜์–ด์•ผํ•ฉ๋‹ˆ๋‹ค.

์‹ค์ œ ํ–‰๋™

์…€๋Ÿฌ๋ฆฌ ๋Š” ์ •์ƒ์ ์œผ๋กœ ์žฌ ์žฅ์ „

๋‹ค์‹œ๋กœ๋“œ ์š”์ฒญ (๋ฐ ์ดํ›„ ์‹œ์ž‘ ์‹คํŒจ)์„ ์‹คํ–‰ ํ•œ ํ›„ sudo journalctl -xe ์˜ ์ถœ๋ ฅ์— ์•…์˜์  ์ธ ๋‚ด์šฉ์ด ํ‘œ์‹œ๋˜์ง€ ์•Š๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

Nov 15 04:33:04 ip-172-31-44-219 sudo[12972]:   ubuntu : TTY=pts/0 ; PWD=/home/ubuntu ; USER=root ; COMMAND=/usr/sbin/service myproj-celery reload
Nov 15 04:33:04 ip-172-31-44-219 sudo[12972]: pam_unix(sudo:session): session opened for user root by ubuntu(uid=0)
Nov 15 04:33:04 ip-172-31-44-219 systemd[1]: Reloading myproj celery worker.
-- Subject: Unit myproj-celery.service has begun reloading its configuration
-- Defined-By: systemd
-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel
--
-- Unit myproj-celery.service has begun reloading its configuration
Nov 15 04:33:07 ip-172-31-44-219 sh[12979]: celery multi v4.1.0 (latentcall)
Nov 15 04:33:07 ip-172-31-44-219 sh[12979]: > Stopping nodes...
Nov 15 04:33:07 ip-172-31-44-219 sh[12979]:         > worker1@ip-172-31-44-219: TERM -> 12962
Nov 15 04:33:07 ip-172-31-44-219 sh[12979]: > Waiting for 1 node -> 12962.....
Nov 15 04:33:07 ip-172-31-44-219 sh[12979]:         > worker1@ip-172-31-44-219: OK
Nov 15 04:33:07 ip-172-31-44-219 sh[12979]: > Restarting node worker1@ip-172-31-44-219: OK
Nov 15 04:33:07 ip-172-31-44-219 sh[12979]: > Waiting for 1 node -> None...
Nov 15 04:33:07 ip-172-31-44-219 sh[12992]: celery multi v4.1.0 (latentcall)
Nov 15 04:33:07 ip-172-31-44-219 sh[12992]: > worker1@ip-172-31-44-219: DOWN
Nov 15 04:33:07 ip-172-31-44-219 systemd[1]: Reloaded myproj celery worker.
-- Subject: Unit myproj-celery.service has finished reloading its configuration
-- Defined-By: systemd
-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel
--
-- Unit myproj-celery.service has finished reloading its configuration
--
-- The result is done.
Nov 15 04:33:07 ip-172-31-44-219 sudo[12972]: pam_unix(sudo:session): session closed for user root

CELERYD_PID_FILE="/var/run/celery/%N.pid" ๊ฐ€ ์•Œ๋ ค์ง€์ง€ ์•Š์€ ๊ฒƒ์ด ๋ฌธ์ œ์ž…๋‹ˆ๊นŒ? ์˜๋ฏธ, ์šฐ๋ฆฌ๋Š” Systemd์— ( PIDFile= ) PID ํŒŒ์ผ์˜ ์‹ค์ œ ์œ„์น˜๋ฅผ ์•Œ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ์™œ๋ƒํ•˜๋ฉด ๊ทธ๊ฒƒ์€ ์…€๋Ÿฌ๋ฆฌ ์ž์ฒด์— ์˜ํ•ด ์ƒ์„ฑ ๋˜์—ˆ๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.

Deployment Bug Report

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

์šฐ์™€ ๊ฐ™์€ ๋ฌธ์ œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.
๋‚˜๋Š” systemd config๋ฅผ ํŽธ์ง‘ํ•˜์—ฌ ํ•ด๊ฒฐํ•ฉ๋‹ˆ๋‹ค.
๋‹ค์‹œ ์‹œ์ž‘ = ํ•ญ์ƒ

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

systemd ๋ฐ celery ํŒŒ์ผ์„ ๊ฒŒ์‹œ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ?
systemd์— PID๋ฅผ ์ €์žฅํ•  ์œ„์น˜๋ฅผ ์•Œ๋ฆด ์ˆ˜ ์žˆ์ง€๋งŒ ์ด์Šค์ผ€์ดํ”„ํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค.

celery multi restart w1 -A proj --pidfile=/tmp/celery_%%n.pid

์ด์ค‘ ํผ์„ผํŠธ๋ฅผ ์ฃผ๋ชฉํ•˜์‹ญ์‹œ์˜ค.

์šฐ์™€ ๊ฐ™์€ ๋ฌธ์ œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.
๋‚˜๋Š” systemd config๋ฅผ ํŽธ์ง‘ํ•˜์—ฌ ํ•ด๊ฒฐํ•ฉ๋‹ˆ๋‹ค.
๋‹ค์‹œ ์‹œ์ž‘ = ํ•ญ์ƒ

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