MJay
Celery 간단 요약 정리 2 본문
Celery는 distributed task queue이다.
task queues은 threads 나 machine을 통해 task를 분산시키는 메커니즘이다.
이 task를 처리하는 것들은 worker라고 한다.
Worker는 웹서비스에서 뒷단의 작업을 처리하는 별도의 프레임이다.
여기서 task queue 역할을 하는게 broker이다.
task 모듈 작성( app) -> celery 서버를 가동 -> task 호출을 원하는 프로그램에서 task 모듈을 import하게 되면 task를 콜해준다.
Celery는 메세지로 소통을 한다. 클라이언트가 메세지를 task queue에 집어 넣으면
broker라는 놈이 이 메세지를 worker로 가져간다
Python App + Celery
Call task 하는 과정
tasks를 불러와서 delay 즉 asynchronous를 요청하는 것이기 때문에
이 process가 RabbitMq -Message Broker를 통해 Task Queue에 저장된다.
task에 대한 Celery 서버를 가동 시키면 worker들이 생성되고
task queue에 담긴 작업들을 Worker가 가져간다고 보면된다.
여기서 worker 파라미터는 worker를 실행하라는 파라미터이고, -A는 앱(모듈)이름, --loglevel은 로그 레벨을 지정하는 파라미터이다. 위와 같이 celery 서버를 기동하면 front-ground로 실행이 되어 아래와 같은 화면이 출력되고 task 요청을 기다리는 상태가 된다.
app: 현재 서버로 가동한 app이름 및 ID
transport:
concurrency - worker 프로세스 숫자
result - 수행 결과
'Cloud Computing' 카테고리의 다른 글
CherryPick PPT 만들었습니다. (0) | 2017.05.10 |
---|---|
What is overhead? (0) | 2017.05.06 |
Celery 간단 요약 정리 1 (0) | 2017.04.09 |
Condor-annes vs Celery (0) | 2017.04.02 |
Celery (0) | 2017.04.01 |