Skip to content

2021.04.11 이미지 변환 비동기 처리

b-chae edited this page Apr 11, 2021 · 2 revisions

2021.04.11

  • celery, redis 를 사용하여 이미지 변환 비동기 처리
  • 유저 모델 추가
  • JWT Authentication 추가

개발 일지

  • 실시간 처리를 위해서 1초에 10개 이상의 요청을 보내야 한다, 따라서 오래 걸리는 이미지 변환을 동시에 처리할 수 있도록 비동기 처리가 필요하다고 생각했다.
  • Celery는 분산 메시지 전달을 기반으로 동작하는 비동기 작업 큐이다.
  • [사용자] -> 요청 -> [웹서버] -> 요청 -> [Redis : Message Broker] -> 분배 -> [Celery: Worker]
[2021-04-11 06:34:21,672: INFO/MainProcess] Received task: config.tasks.convert_image[7852300a-4582-4deb-94c2-517f6
a742dde]  
[2021-04-11 06:34:27,550: WARNING/ForkPoolWorker-1] done!
[2021-04-11 06:34:27,551: INFO/ForkPoolWorker-1] Task config.tasks.convert_image[7852300a-4582-4deb-94c2-517f6a742d
de] succeeded in 5.878234221949242s: None

[2021-04-11 06:34:40,072: WARNING/ForkPoolWorker-8] done!
[2021-04-11 06:34:40,073: INFO/ForkPoolWorker-8] Task config.tasks.convert_image[2e110d6d-8ada-4bae-b453-602572c5ea
47] succeeded in 21.535740785999224s: None
  • 600kB의 이미지일 경우 5초, 0.9M의 이미지일 경우 20초가 소요된다.
  • Member 모델 생성 : email을 자동으로 username으로 설정