SeouliteLab

파이썬으로 비동기 작업 처리하기: Celery를 활용한 작업 큐 구축 본문

프로그래밍

파이썬으로 비동기 작업 처리하기: Celery를 활용한 작업 큐 구축

Seoulite Lab 2024. 4. 16. 08:44

Celery는 파이썬으로 작성된 비동기 작업 큐 라이브러리로, 분산 시스템에서 작업을 처리하기 위한 강력한 도구입니다. Celery를 사용하면 작업을 비동기적으로 실행하고 관리할 수 있으며, 작업을 큐에 추가하여 원격 서버에서 실행할 수 있습니다. 아래는 Celery의 주요 기능과 사용법을 살펴보겠습니다.

기능 1: 작업 정의 및 등록

Celery를 사용하여 작업을 정의하고 등록할 수 있습니다. 작업은 단순한 함수로 정의되며, Celery에 등록되면 원격 실행을 위해 준비됩니다.

예제 1: 작업 정의 및 등록

from celery import Celery

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

@app.task
def add(x, y):
    return x + y

기능 2: 작업 실행 및 결과 처리

Celery를 사용하여 작업을 실행하고 결과를 처리할 수 있습니다. 작업을 실행하면 Celery가 작업을 큐에 추가하고 작업자(worker)가 작업을 가져와 실행합니다.

예제 2: 작업 실행 및 결과 처리

from tasks import add

result = add.delay(4, 4)  # 작업 실행
print(result.get())  # 결과 처리

기능 3: 작업 예약과 스케줄링

Celery를 사용하여 작업을 예약하고 스케줄링할 수 있습니다. 작업을 특정 시간에 실행하거나 주기적으로 실행할 수 있습니다.

예제 3: 작업 예약과 스케줄링

from celery import Celery
from datetime import timedelta

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

@app.task
def multiply(x, y):
    return x * y

# 10분 후에 작업 실행
result = multiply.apply_async(args=[3, 3], countdown=600)