Celery는 Python으로 작성된 분산 작업 큐 시스템입니다. 이를 통해 비동기적으로 작업을 실행할 수 있습니다. Celery를 사용하여 비동기 처리를 하는 방법에 대해 알아보겠습니다.
Celery 설치
기본적으로 Celery를 사용하기 위해서는 Celery를 설치해야 합니다. 아래의 명령어를 실행하여 Celery를 설치할 수 있습니다.
pip install celery
테스크 생성
Celery에서 비동기적으로 실행할 작업을 테스크라고 부릅니다. 아래는 예시 테스크의 코드입니다.
from celery import Celery
app = Celery('example', broker='pyamqp://guest@localhost//')
@app.task
def add(x, y):
return x + y
위의 코드에서 app.task
데코레이터로 감싸진 add
함수는 Celery 테스크로 취급됩니다.
Celery 워커 실행
Celery 워커는 테스크를 비동기적으로 실행하는 프로세스입니다. 아래의 명령어를 실행하여 Celery 워커를 실행할 수 있습니다.
celery -A example worker --loglevel=info
위의 명령어에서 example
은 Celery 애플리케이션의 모듈을 가리킵니다. --loglevel=info
는 로그 레벨을 지정하는 옵션으로, 필요에 따라 변경할 수 있습니다.
테스크 실행
Celery의 테스크를 실행하려면 apply_async
메서드를 사용하면 됩니다. 아래의 코드에서는 add
테스크를 실행하고 결과를 얻는 예시입니다.
from example import add
result = add.apply_async(args=(4, 5))
print(result.get())
위의 코드에서 apply_async
메서드는 비동기적으로 add
테스크를 실행합니다. args
매개변수를 사용하여 테스크에 전달할 인수를 지정할 수 있습니다. result.get()
은 테스크의 실행 결과를 얻기 위해 사용됩니다.
요약
이렇게 Celery를 사용하여 Python에서 비동기적 작업을 처리할 수 있습니다. Celery를 설치하고 테스크를 생성한 후, Celery 워커를 실행해야 하며, 실행할 테스크에는 apply_async
메서드를 사용하여 비동기적으로 실행할 수 있습니다.