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