Celery 찍어먹어보기

django-admin startproject mq_celery . : Celery 를 사용해볼 장고를 띄움

pip install celery : celery 설치
brew install rabbitmq : 브로커 역할을 해줄 토끼mq

python manage.py startapp app1
mq_clerey/settings.py 에서 app1 을 추가해준다.

INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'app1' # 이거 추가 안해줬다가 task에 잡히질 앉는 오류를 범했었다.
]
  • mq_celery/celery.py
from __future__ import absolute_import, unicode_literals

import os

from celery import Celery

os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'mq_celery.settings')

app = Celery('mq_celery')

app.config_from_object('django.conf:settings', namespace='CELERY')

app.autodiscover_tasks() # 이러면 등록된 앱들의 task를 오토로 챙겨온다.
  • app1/tasks.py
from __future__ import absolute_import, unicode_literals

from celery import shared_task

@shared_task
def add(x, y):
    return x + y

celery -A mq_celery worker -l info: celery 실행 tasks에 테스크가 잡힌다.

임의로 테스크를 넣어주었다. 오타는 덤.

[2022-04-06 13:37:51,037: INFO/MainProcess] Task app1.tasks.add[677b0c4e-ab18-4a3c-a076-6bb0d5f20678] received
[2022-04-06 13:37:51,041: INFO/ForkPoolWorker-8] Task app1.tasks.add[677b0c4e-ab18-4a3c-a076-6bb0d5f20678] succeeded in 0.0006483820034191012s: 8
[2022-04-06 13:39:11,150: INFO/MainProcess] Task app1.tasks.add[1fcdab19-11fc-4c5f-8cf9-87df5525d4b4] received
[2022-04-06 13:39:22,370: INFO/ForkPoolWorker-8] Task app1.tasks.add[1fcdab19-11fc-4c5f-8cf9-87df5525d4b4] succeeded in 0.000147557002492249s: 6
[2022-04-06 13:39:32,711: INFO/MainProcess] Task app1.tasks.add[4bddfcb3-d309-41c8-9d41-03cc94ac1793] received
[2022-04-06 13:39:34,297: INFO/ForkPoolWorker-8] Task app1.tasks.add[4bddfcb3-d309-41c8-9d41-03cc94ac1793] succeeded in 0.00013701198622584343s: 6

결과는 잘 나오는군.

(아직 할 거 더 남음)

celery 이용해보는 와중에 celery 공식 문서가 다운되었다. (꼭 맘잡고 뭘 해보려면 이런일이...)
그리고 공식문서 사이트가 https가 아닌 http다.... 처음 접하는 celery인데 유명한 오픈소스같은데 http..?

좋은 웹페이지 즐겨찾기