MJay

Celery 간단 요약 정리 1 본문

Cloud Computing

Celery 간단 요약 정리 1

MJSon 2017. 4. 9. 21:42
Worker는 웹서비스에서 뒷단의 작업을 처리하는 별도의 프레임이다.

Celery는 Worker이다.

Worker는 웹 서비스에서 사용자에게 즉각적인 반응을 보여줄 필요가 없는 작업들오 인해 사용자가 느끼는 딜레이를 최소화 하기 위해서 사용된다.



DB에 저장되는건 사용자가 볼 필요없으니 이걸 Worker가 처리해준다.

Celery 서버를 통해 이런 뒷단 작업을 다수의 Worker에게 적절히 배분해준다고한다.

수행하는 작업 단위는 task이다.

task의 실행을 의뢰받는게 브로커이다.  task 수행 요청을 받아들이 브로커

task 모듈 작성  ->  celery 서버를 가동 -> task 호출을 원하는 프로그램에서 task 모듈을 import하면 task를 콜

Celery 인스턴스로 선언된 app을 celery application  ->  Celery 서버가 태스크를 관리하는 진입점

모든 celery 작업의 수행이 앱으로부터 시작

Worker들은 계속 task queue를 보면서 자기가 할 일이 없으면 task를 받아 실행한다.

메세지로 소통을 한다

클라이언트가 메세지를 task queue에 집어 넣으면 broker라는 놈이 이 메세지를 worker로 가져간다.

태스크를 정의하고 태스크 수행 요청을 받아서 처리할 celery 서버를 가동하는 것이다

 $ celery -A tasks worker --loglevel=info


여기서 worker 파라미터는 worker를 실행하라는 파라미터이고, -A는 앱(모듈)이름, --loglevel은 로그 레벨을 지정하는 파라미터이다. 위와 같이 celery 서버를 기동하면 front-ground로 실행이 되어 아래와 같은 화면이 출력되고 task 요청을 기다리는 상태가 된다.



app: 현재 서버로 가동한 app이름  및 ID
transport: 
concurrency - worker 프로세스 숫자  
result - 수행 결과



add.delay(4,4)를 하게 되면 task 수행 요청이 celery 서버로 전해진다

수행 요청이 task queue로 들어가게 된다. 













'Cloud Computing' 카테고리의 다른 글

What is overhead?  (0) 2017.05.06
Celery 간단 요약 정리 2  (0) 2017.04.09
Condor-annes vs Celery  (0) 2017.04.02
Celery  (0) 2017.04.01
TR-Spark  (0) 2017.03.29