*관련 포스팅 내용

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 연계에 대한 포스팅을 남겨요.


먼저 설치를 해야 하는데요.


RabbitMQ나 Django와 관련된 설치는 아래 링크들을 참고해주세요.


Installing Django on Ubuntu 14.04 - http://ngee.tistory.com/416

RabbitMQ 설치 - http://ngee.tistory.com/235

RabbitMQ Management Plugin (Ubuntu)  - http://ngee.tistory.com/313

RabbitMQ default user change - http://ngee.tistory.com/314


와 설치할꺼 짱 많네요. 그래도 다 잘 설치하시길 바랍니다. ^^


Celery 설치는 아래와 같이 수행하시면 됩니다. 

(pip가 설치되어있는 것을 가정했습니다. 혹시 pip 설치하지 않으신 분들은 apt-get install pip로 설치하세요)


pip install -U Celery

pip install django-celery


끝이에요. 엄청 쉽네요.

Django로 새로운 프로젝트를 만들면 다음과 같은 구조가 되죠.

예로 ppp 라는 프로젝트를 만들면

........./ppp/
                  ┣ manage.py
                  ┗ ppp/
                             ┣ __init__.py
                             ┣ settings.py
                             ┣ urls.py
                             ┗ wsgi.py

settings.py에서 Celery와의 연계를 위해 추가되야어야 하는 부분이 있습니다.

vi로 열어보시면 INSTALLED_APPS 부분이 있습니다. 여기에 djcelery를 추가해주세요. 우리가 앞에서 pip로 설치한 녀석입니다.

INSTALLED_APPS = (
    ......
    ......
    'djcelery',
)

다음으로 마지막에 다음과 같은 설정이 필요합니다.

BROKER_URL = 'amqp://userID:password@ipAddress:5672//'
CELERY_IMPORTS = ('ggg.tasks', )

Broker url은요 RabbitMQ에 대한 내용을 작성하는 곳입니다.
나머지는 그냥 딱 보시면 알 것 같구요. ipAddress는 RabbitMQ가 설치된 서버의 ip주소를 작성해주셔야 합니다.
하나의 서버에서 실행중이라고 하시면 localhost 또는 127.0.0.1로 변경하셔도 되겠죠.

CELERY_IMPORTS는 # List of modules to import when celery starts. 로 소개되고 있는데요.
Celery Task함수를 가진 파일의 위치를 포함해주시면 됩니다.
위 예제에서는 ggg 앱에 tasks라는 파일을 Celery에서 확인할 수 있도록 설정한 것이 되겠습니다.
ggg앱을 추가하는 것은 여기서 정리하지는 않겠습니다. 

다음 포스팅에서는 연계 2번째로 가장 기본적인 Task를 실행해보는 것에 대해서 작성해보겠습니다.
위 내용중  ggg앱의 tasks를 만들고, Worker를 생성해서 실제 동작하는지 확인해보는 것이죠!!
연계 3포스팅에는 외부 서버의 Worker는 어떻게 연결하는지(엄청 쉽습니다^^;;) 큰 그림은 어떻게 되는지 작성해보려고 합니다.




  1. 문현철 2015.03.20 17:51

    감사합니다 개고생하다가 덕분에 해결하였습니다 :)

+ Recent posts