[python] Celery의 다운타임 방지를 위한 자동 복구 설정 방법은 어떻게 되는가?

Celery는 Python으로 작성된 분산 작업 큐이며, 대규모 작업을 분산해서 처리할 수 있도록 도와줍니다. 그러나 때로는 Celery 워커가 다운되는 문제가 발생할 수 있습니다. 이러한 다운타임은 작업 처리 지연과 성능 하락을 초래할 수 있으므로, 이를 방지하기 위해 Celery 자동 복구 설정을 구성할 수 있습니다.

자동 복구 설정은 Celery의 retry 메커니즘을 사용하여 작업이 실패한 경우 자동으로 재시도할 수 있도록 해줍니다. 이를 설정하기 위해 다음 단계를 따르세요:

  1. Celery 프로젝트의 설정 파일(celery.py 또는 celeryconfig.py)을 엽니다.

  2. CELERY_TASK_ACKS_LATE 설정을 True로 설정합니다. 이렇게 하면 작업이 완료되기 전에 Celery 워커가 UDP 메시지를 전송하여 작업을 수락하는 것을 방지합니다.

CELERY_TASK_ACKS_LATE = True
  1. CELERY_TASK_REJECT_ON_WORKER_LOST 설정을 True로 설정합니다. 이렇게 하면 Celery 워커가 다운되거나 연결이 중단되었을 때 작업을 거부합니다.
CELERY_TASK_REJECT_ON_WORKER_LOST = True
  1. CELERY_TASK_SERIALIZER 설정을 변경하여 작업 결과를 직렬화할 수 있도록 합니다. 기본값은 json이지만, 경량화할 필요가 있다면 pickle 또는 msgpack 등의 다른 직렬화 형식을 사용할 수도 있습니다.
CELERY_TASK_SERIALIZER = 'json'
  1. 자동 복구 및 재시도를 위한 추가 설정을 원한다면, CELERY_QUEUES 설정을 구성할 수 있습니다. 여기에는 재시도 가능한 작업들을위한 별도의 큐를 설정할 수 있습니다.

자동 복구 설정을 적용하기 위해 Celery 워커를 다시 시작하면 설정이 적용됩니다. 이제 Celery 워커는 다운되거나 연결이 끊어진 경우에도 작업을 자동으로 복구할 것입니다.

참고 문서: