파이썬/장고
-
[Django] Celery 작업 실패 시 콜백 함수 설정하기파이썬/장고 2021. 6. 20. 16:43
Celery는 분산 메시지 전달에 기반을 둔 오픈 소스 비동기 task queue이다. 진행 중인 프로젝트에서 데이터 수집 작업을 비동기로 처리하기 위해 장고와 연동해서 Celery를 사용하였는데, Celery가 수행하는 모든 작업은 별도의 작업 기록 테이블에서 관리되도록 하였다. 그런데 이를 위해서 작업 실패 시의 상태값 업데이트가 필요했다. 처음에는 일정 시간마다 result backend를 조회하는 스케줄러를 통해서 상태값을 업데이트해볼까 생각했지만, 배보다 배꼽이 커지는 격이어서 다른 방법을 찾게 되었다. 그러던 중 Celery에서 on_failure()라는 콜백 함수를 지원하는 걸 발견했다. 사용 방법은 다음과 같다. 1. celery.Task 클래스 상속 후 on_failure() 함수 오버라..