보통 celery.py와 tasks.py를 두고 worker를 실행시키고
애플리케이션 서버에서는 tasks.py를 import해서 사용한다.
근데, 여기서 사용자의 눈에는 안보이는 것이있다.
워커를 실행할때는 당연히 celery.py를 이용해서 실행하기 때문에 별 이상해 보일것이 없는데,
잡을 줄때는 어떻게 이녀석이 redis에 커넥션이 되서 일을 전달 할 수 있는 것일까?
tasks.py를 보면 우리가 사용한 app은 결국 celery.py에서 가져온 것이기 때문에 일을 주는 애들도 각각 이 celery.py를 실행하여 celery app instance를 만들기 때문에 저런 상황이 가능한 것이다. 즉, 워커들도 각각 celery.py를 실행하듯, 사용하는 쪽에서도 celery.py를 각각 실행해서 app을 가지고 있다는 것!
'celery' 카테고리의 다른 글
[celery] How to run different multiple workers using different queue (0) | 2017.12.05 |
---|---|
celery 오해와 진실 (0) | 2015.03.13 |
Revoking task (0) | 2014.11.24 |
예약 푸시 (0) | 2014.11.20 |