[python] Celery의 작업 실행 상태를 웹 인터페이스에서 모니터링하는 방법은 어떻게 되는가?

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 makemigrationspython manage.py migrate 명령을 실행하여 데이터베이스에 모델을 저장합니다.

그리고 나서 작업을 실행하고 작업 ID를 사용하여 작업 결과를 검색할 수 있습니다:

from tasks.models import TaskResult
result = TaskResult.objects.get(task_id=your_task_id)

위의 your_task_id에는 실행한 작업의 식별자인 UUID를 대입합니다. 이를 통해 결과를 가져올 수 있습니다.

마치며

Celery 작업의 실행 상태를 모니터링하는 것은 작업의 효율성을 높이고 문제를 신속하게 파악하는 데 도움이 됩니다. 위에서 언급한 방법 중 하나를 선택하여 Celery 작업을 효과적으로 모니터링해보세요!