Post

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.