You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
어제 테스트로 Bletcher-mix 레포지토리를 헤로쿠에 빌드 및 배포하였고 이후, 정상적으로 두 이미지가 배포 서버에서 합성 및 Cloudinary 업로드 되는 것을 확인하였다.
이 때 테스트한 샘플 이미지는 단순 바탕화면 조각 캡처로, 결과는 별다른 이미지 변화 없이 크기만 바뀌었다.
->
문제는 이미지를 바꿔서 테스트 했을 때 나타났다.
문제점
로컬 환경에서 blecher-mix Django 서버를 실행하고 위 그림으로 테스트하는 경우, 다음과 같이 문제 없이 합성이 진행되었고 저장소에 업로드되는 것을 확인할 수 있었다.
하지만, 배포된 'bletcher-mix.herokuapp.com'에 동일한 요청을 보낼 시 에러가 나타났다.
H12 Error https://devcenter.heroku.com/articles/error-codes#h12-request-timeout
: 이 에러의 경우, HTTP request를 수행하는데 30초 이상 걸릴 시 발생한다고 한다. 요청 및 작업 수행에 이상이 없더라도 response 시간이 30초를 넘는다면 무조건 이 에러를 리턴하며, 로그 창 확인 결과, 헤로쿠 프로세스(Worker)는 나머지 일을 마저 수행하는 것을 확인하였다. (즉, Node로는 status 500이 가지만, 기다리면 cloudinary에 합성 이미지만 올라가는 현상)
개요
어제 테스트로 Bletcher-mix 레포지토리를 헤로쿠에 빌드 및 배포하였고 이후, 정상적으로 두 이미지가 배포 서버에서 합성 및 Cloudinary 업로드 되는 것을 확인하였다.
이 때 테스트한 샘플 이미지는 단순 바탕화면 조각 캡처로, 결과는 별다른 이미지 변화 없이 크기만 바뀌었다.
->
문제는 이미지를 바꿔서 테스트 했을 때 나타났다.
문제점
로컬 환경에서 blecher-mix Django 서버를 실행하고 위 그림으로 테스트하는 경우, 다음과 같이 문제 없이 합성이 진행되었고 저장소에 업로드되는 것을 확인할 수 있었다.
하지만, 배포된 'bletcher-mix.herokuapp.com'에 동일한 요청을 보낼 시 에러가 나타났다.
H12 Error
https://devcenter.heroku.com/articles/error-codes#h12-request-timeout
: 이 에러의 경우, HTTP request를 수행하는데 30초 이상 걸릴 시 발생한다고 한다. 요청 및 작업 수행에 이상이 없더라도 response 시간이 30초를 넘는다면 무조건 이 에러를 리턴하며, 로그 창 확인 결과, 헤로쿠 프로세스(Worker)는 나머지 일을 마저 수행하는 것을 확인하였다. (즉, Node로는 status 500이 가지만, 기다리면 cloudinary에 합성 이미지만 올라가는 현상)
R14 Error
https://devcenter.heroku.com/articles/error-codes#r14-memory-quota-exceeded
: 메모리 사용량 초과 에러다. 단순 해결법은 헤로쿠를 업그레이드 하는 것. 아니라면, Gunicorn 설정을 통해 worker 수를 줄여야 한다고 한다.
해결 방안
이를 해결하는 방법으로는 다음과 같은 예시가 있었다.
위 방법은 HTTP request 이후, 합성하는 프로세스를 백그라운드 워커에게 맡기는 방식인 것 같다. 이를 구현하는 방법으로는 'Celery'가 대표적인 것 같았다.
또한, 이를 사용하기 위해서는 Redis나 RabbitMQ와 같은 작업을 할당할 '브로커' 설정이 필요하다.
작업해야 할 것이 생각보다 많아서 계획을 잘 짜고 시작해야 할 것 같다.
( + 거의 10년 전 사례지만 현재 우리의 문제와 비슷해서 참고) : https://spoqa.github.io/2012/05/29/distribute-task-with-celery.html
The text was updated successfully, but these errors were encountered: