Celery는 파이썬으로 작성된 분산 작업 큐이며, 대규모 작업을 비동기적으로 실행할 수 있습니다. 이러한 작업들의 실행 상태를 모니터링하는 것은 매우 중요합니다. 이를 위해 Celery는 여러가지 방법을 제공합니다.
1. Flower
Flower는 Celery 작업 실행 상태를 웹 인터페이스를 통해 모니터링할 수 있는 강력한 오픈 소스 도구입니다. Flower를 사용하면 작업의 성공, 실패, 진행 중인 작업의 상태를 실시간으로 확인할 수 있습니다.
Flower를 설치하려면 다음과 같이 명령을 실행합니다:
pip install flower
다음은 Flower를 실행하는 명령어입니다:
celery flower -A your_project_name --port=5555
“your_project_name”은 Celery 프로젝트의 이름입니다. 위의 명령을 실행하면 웹 브라우저에서 http://localhost:5555/
에 접속하여 Flower 웹 인터페이스를 열 수 있습니다.
2. Django-Celery-Results
만약 Django 프레임워크를 사용하고 있다면, Django-Celery-Results 라이브러리를 사용하여 Celery 작업의 결과를 모니터링 할 수 있습니다.
Django-Celery-Results를 설치하려면 다음과 같이 명령을 실행합니다:
pip install django-celery-results
설치가 완료되면 Django의 settings.py
파일에서 다음과 같이 설정을 추가합니다:
CELERY_RESULT_BACKEND = 'django-db'
이후 Django 앱의 모델 파일에서 작업 결과를 저장하기 위한 모델을 만들 수 있습니다. 예를 들어, tasks
앱의 models.py
파일에 다음과 같이 작성합니다:
from django.db import models
class TaskResult(models.Model):
task_id = models.CharField(max_length=255, unique=True)
result = models.TextField()
위의 모델을 만든 후 python manage.py makemigrations
와 python manage.py migrate
명령을 실행하여 데이터베이스에 모델을 저장합니다.
그리고 나서 작업을 실행하고 작업 ID를 사용하여 작업 결과를 검색할 수 있습니다:
from tasks.models import TaskResult
result = TaskResult.objects.get(task_id=your_task_id)
위의 your_task_id
에는 실행한 작업의 식별자인 UUID를 대입합니다. 이를 통해 결과를 가져올 수 있습니다.
마치며
Celery 작업의 실행 상태를 모니터링하는 것은 작업의 효율성을 높이고 문제를 신속하게 파악하는 데 도움이 됩니다. 위에서 언급한 방법 중 하나를 선택하여 Celery 작업을 효과적으로 모니터링해보세요!