Python Celery를 보면 기본적으로 워커와 잡의 개념이기 때문에
일단 task를 요청하면 무조건 잡이 큐에 들어갈 것같다.
하지만 이건 오해다.
진실을 말하자면,
잡은 sync와 async로 요청을 할 수 있는데, 이때 sync로 요청하면 큐에 들어가지 않고 부른 프로세스에서 걍 처리한다.
이렇게 직접 일을 처리하기위함도 있고 기타 등등의 설정을 유지하기 위해 워커뿐 아니라 잡을 요청하는 녀석도 celery app을 실행시키는 스크립트를 실행한다. (보통 celery.py 라고 명명하고 쓰는..)
그래서 주의할 것은
다이나믹 실행환경을 쓸경우 env라는 키를 만들어서 큐 Broker url을 동적으로 넣어줄 수 있는데, 이때 워커가 실행될때 설정되는것 이외에 잡을 던지는 녀석이 실행될때도 올바른 Broker url 이 들어가도록 해야한다는 것이다.
'celery' 카테고리의 다른 글
[celery] How to run different multiple workers using different queue (0) | 2017.12.05 |
---|---|
worker와 publisher가 init되는 것에 대한 오해가 있었다. (0) | 2015.05.11 |
Revoking task (0) | 2014.11.24 |
예약 푸시 (0) | 2014.11.20 |