[python] Celery의 작업 결과를 데이터베이스에 저장하는 방법은 어떻게 되는가?
- 필요한 데이터베이스 모델을 정의합니다. 예를 들어,
TaskResult
모델을 생성합니다. 이 모델은 작업 결과를 저장할 필드를 포함해야 합니다.
from django.db import models
class TaskResult(models.Model):
result = models.CharField(max_length=255)
# 다른 필요한 필드들을 추가할 수도 있습니다
def __str__(self):
return self.result
- Celery 작업이 완료될 때마다 작업 결과를 데이터베이스에 저장합니다. 이를 위해 Celery의
@task
데코레이터를 사용합니다.
from celery import shared_task
from .models import TaskResult
@shared_task
def your_task(*args, **kwargs):
# 작업 로직
result = "작업 결과" # 실제 작업 결과를 얻는 방식을 여기에 적용하세요
# 결과를 데이터베이스에 저장
TaskResult.objects.create(result=result)
return result
위의 예시에서 your_task
는 Celery 작업입니다. 작업 로직을 포함한 함수입니다. 작업이 완료된 후 TaskResult
모델을 사용하여 작업 결과를 데이터베이스에 저장할 수 있습니다.
저장된 작업 결과를 사용할 때, TaskResult
모델을 쿼리하여 결과를 가져올 수 있습니다.
이렇게 작업 결과를 데이터베이스에 저장하면 필요할 때 결과를 검색하고 추적할 수 있습니다. Celery를 사용하여 비동기 작업을 처리할 때 유용한 방법입니다.