Celery로 비동기 영상 인코딩 처리하기

비동기 처리는 웹 어플리케이션에서 오랜 작업을 수행하는 동안 사용자 경험을 향상시킬 수 있는 효과적인 방법입니다. 영상 인코딩과 같은 오랜 작업은 사용자가 기다리는 동안 처리를 완료하기까지 많은 시간이 소요될 수 있습니다.

Celery는 파이썬의 분산 작업 큐로, 비동기 작업을 처리하는 데 도움을 주는 강력한 도구입니다. Celery를 사용하여 비동기로 영상 인코딩을 처리하는 방법을 살펴보겠습니다.

Celery 설치

Celery를 사용하기 위해서는 먼저 Celery를 설치해야 합니다. 다음 명령을 사용하여 Celery를 설치할 수 있습니다.

pip install celery

Celery 작업 정의하기

Celery는 작업을 정의하는 파일을 사용합니다. 이 파일에는 비동기로 실행될 함수 또는 메서드를 정의해야 합니다.

예를 들어, 영상 인코딩 작업을 처리하는 encode_video 함수를 정의하는 tasks.py 파일을 생성합니다.

from celery import Celery

app = Celery('tasks', broker='redis://localhost:6379/0')

@app.task
def encode_video(video_path):
    # 영상 인코딩 작업 처리 코드
    pass

위의 코드에서 encode_video 함수는 @app.task 데코레이터로 래핑되어 Celery 작업으로 등록됩니다.

Celery 작업 실행하기

Celery 작업은 다음과 같이 실행됩니다.

from tasks import encode_video

encode_video.delay('/path/to/video.mp4')

delay 메서드는 비동기로 작업을 실행하는 메서드입니다. 인자로는 encode_video 함수의 매개변수를 전달합니다.

작업을 실행하면 Celery가 백그라운드에서 작업을 처리하고 결과를 반환합니다.

Celery 워커 실행하기

Celery 작업을 처리하기 위해서는 Celery 워커(worker)를 실행해야 합니다.

celery -A tasks worker --loglevel=info

위의 명령은 tasks.py 파일을 포함한 프로젝트의 모든 작업을 처리하는 Celery 워커를 실행합니다.

마치며

Celery를 사용하면 비동기 작업을 간단하게 처리할 수 있습니다. 영상 인코딩과 같은 오랜 작업을 비동기로 처리하면 사용자는 기다리지 않고 웹 애플리케이션을 원활하게 사용할 수 있습니다.

#python #Celery