Celery

파이썬 (Python)

Celery 재시도 로직과 Exponential Backoff and Jitter

개요Celery는 파이썬에서 널리 사용되는 비동기 작업 큐 라이브러리로, 주로 분산 작업 처리와 백그라운드 작업 실행을 위해 활용됩니다.비동기 작업에는 외부 API 호출이 포함되는 경우가 많으며, 이러한 작업은 외부 환경의 영향을 받기 쉽습니다. 네트워크 지연, 일시적인 API 장애, 서비스의 부하 등으로 인해 작업이 실패할 수 있습니다. 그러나 실패 원인이 일시적인 네트워크 문제인지, API 서비스의 장기적인 장애인지 즉시 판단하기는 어렵습니다.이 글에서는 Exponential Backoff와 Jitter라는 안정성 보장 기법을 소개하고, 이를 Celery에 적용해 외부 API 통합 시스템의 신뢰성과 복원력을 강화하는 방법을 설명합니다.Celery Task의 재시도 로직Celery task를 정의할때는..

파이썬 (Python)

Celery worker OOM Killed 문제 해결기

개요Celery를 이용하다 celery worker OOM(Out of Memory) Kill 문제가 발생한 것을 해결한 경험을 정리합니다. 최초 문제 발생Celery를 이용하던 중 어느 순간 도커를 이용하여 가동해 둔 Celery worker가 정지해 있는 것을 발견했습니다. 이를 재가동시킨 후 리소스 사용량이 많아 중지된 것인지 확인해 보았습니다.재시작한 컨테이너의 평시 CPU, 메모리 사용량과 디스크 사용량을 확인해 보았습니다.>> docker statsCONTAINER ID NAME CPU % MEM USAGE / LIMIT MEM % NET I/O BLOCK I/O PIDS45dc370549da celery_wo..

Wibaek
'Celery' 태그의 글 목록