About Celery
About Celery
- 비동기 작업 큐이며, 스케쥴링이 가능하지만 실시간 처리에 중점을 두고 있음.
- 동기/비동기 처리가 가능.
- 작업단위를 Task, 작업자를 Worker라고 함.
- 메시지 브로커를 사용함.
주로 RabbitMQ나 Redis를 사용하는데, RabbitMQ와 궁합이 가장 잘 맞는다고 알려져있음.
메세지 전달을 기반으로 한 비동기 task Queue
- 작업 == 메세지
- Client는 작업을 요청
- Worker는 작업을 수행
- Broker는 메세지를 전달
비대칭적인 구조
- Client와 Worker가 각각 scale 가능
- Client : 불필요하게 무거운 작업으로부터 자유로움
- Worker : 필요에 따라 확장 가능
비동기 처리기?
- 비동기 처리기는 동기적으로 수행하지 않아도 되는 일들을 처리해주는 역할
- 결과를 즉시 받을 필요가 없거나 지연하여 처리해야 되는 일들을 보통 처리
- 물론 그것이 제대로 처리가 되지 않아도 된다는 이야기는 아니기 떄문에 별도라 잘 만들어진 처리기가 필요하다. => 항상 잘 처리되고 유실도 되지 않아야 한다.
This post is licensed under CC BY 4.0 by the author.