*관련 포스팅 내용

Celery + RabbitMQ + Django 참조사이트 : http://ngee.tistory.com/540

Celery + RabbitMQ + Django 연계 1        : http://ngee.tistory.com/542

Celery + RabbitMQ + Django 연계 2        : http://ngee.tistory.com/548

Celery + RabbitMQ + Django 연계 3        : http://ngee.tistory.com/549

Celery Args                                                : http://ngee.tistory.com/550

Celery Worker                                           : http://ngee.tistory.com/563

Celery Worker2                                         : http://ngee.tistory.com/564

Celery Logging                                          : http://ngee.tistory.com/567

Celery Flower                                            : http://ngee.tistory.com/566

Celery Return Value                                  : http://ngee.tistory.com/580


이전 포스팅들에서 Celery + RabbitMQ + Django 연계에 대해서 작성했었습니다. 

이번에는 Celery의 Worker에 대해서 간단하게 정리해보려고 합니다.


한 2개 정도의 포스팅으로 나눠서 작성하려고 하구요.

1에서는 Worker를 서비스에 등록하는 부분에 대해서 간단하게 정리하고 

2에서는 Worker 설정하는 방법에 대해서 정리해보고자 합니다. 


Worker를 데몬으로 만드는 방법은 2단계만 수행하면 됩니다. 


1. /etc/init.d/   아래 celeryd 라는 파일을 위치시킨다.


/etc/init.d/ 아래 여러 서비스들에 대한 파일이 존재하고 있는데요.

이곳에 celeryd 라는 파일을 위치시키고 이를 통해서 service celeryd stop/start/restart 등을 수행할 수 있습니다.


그럼 celeryd 라는 파일을 만들어 낼 것이냐.!! 인데요. 제가 Celery에 대해서 많은 공부를 하게되면 가능하겠지만, 현재로서는

Celery에서 제공해주고 있는 파일을 그대로 활용하겠습니다. 


https://github.com/celery/celery/blob/3.0/extra/generic-init.d/celeryd


위 웹 페이지에 가보시면 /etc/init.d/celeryd 에 사용할 수 있는 파일이 존재합니다.

그대로 다운로드하셔서, /etc/init.d/celeryd 라는 파일로 위치시켜주세요.


이 파일을 확인해보시면 알 수 있는 내용 중 하나로


/etc/default/celeryd 라는 파일을 활용해서 celery worker를 생성합니다. 


즉 /etc/default/celeryd 라는 파일도 만들어야 겠죠.


2. /etc/default/celeryd 파일 만들기


1번과는 다른 파일이죠. 1번은 /etc/init.d/celeryd 이구요. 2번은 /etc/default/celeryd 입니다.

2번 파일도 마찬가지로 제가 잘 모르니깐 일단 기본 틀은 Celery 홈페이지에서 가져옵니다. 


http://celery.readthedocs.org/en/latest/tutorials/daemonizing.html


위 웹페이지 제일 하단에 Django + Celery 환경에서 어떻게 /etc/default/celeryd 내용을 입력해야 하는지 나오고 있습니다.

약간 가져와보면 다음과 같죠.

# Name of nodes to start # here we have a single node CELERYD_NODES="w1" # or we could have three nodes: #CELERYD_NODES="w1 w2 w3" # Absolute path to "manage.py" CELERY_BIN="/path..../projectName/manage.py" # How to call manage.py CELERYD_MULTI="celery multi" # Extra command-line arguments to the worker CELERYD_OPTS="--time-limit=300 --concurrency=8" # %N will be replaced with the first part of the nodename. CELERYD_LOG_FILE="/var/log/celery/%N.log" CELERYD_PID_FILE="/var/run/celery/%N.pid"

이 파일을 그대로 사용하면 에러가 나겠죠.

CELERY_BIN 부분을 수정해주시구요.


그리고 아래 내용도 추가해야 합니다.


CELERYD_USER="userID"

CELERYD_GROUP="userID"

export DJANGO_SETTINGS_MODULE="projectName.settings"



3. service celeryd start/stop/restart


1, 2번을 잘 수행하셨다면 service celeryd start/stop/restart가 잘 수행되어야 합니다.

에러가 난다면 아마도 폴더의 권한 문제 등이 가장 유력할 것 같아요.


권한 설정을 잘해주시고 다시 수행해보세요.

 

그리고 이제 시스템 시작시 celeryd 서비스를 자동으로 실행하기 위해서


update-rc.d celeryd defaults 


로 설정해주시면 좋겠구요.



'파이썬(python2.7) > Django&REST' 카테고리의 다른 글

Celery Flower install and access  (0) 2015.01.20
Celery Logging  (0) 2015.01.20
Celery Worker 2  (0) 2015.01.18
Celery Worker 1  (0) 2015.01.18
Celery Args  (0) 2015.01.10
Celery + RabbitMQ + Django 연계 3  (0) 2015.01.10
Celery + RabbitMQ + Django 연계 2  (0) 2015.01.10
Celery + RabbitMQ + Django 연계 1  (1) 2015.01.08

+ Recent posts