본문 바로가기
개발 공부/Django

django channels - Tutorial Part 3: Rewrite Chat Server as Asynchronous

by 느림보어른 2021. 7. 4.

Asynchronous consumer VS Synchronous consumer

  장점 단점
Asynchronous consumer 요청을 처리하는데 스레드를 추가로 생성할 필요가 없어 더 높은 성능을 이끌어낸다. 코드가 어렵다.
Synchronous consumer 특별한 코드가 필요없어 편리하다 Asynchronous consumer에 비해 성능이 뒤떨어진다.

언제나 Asynchronous consumer를 사용해야 하는가?

대답은 No다.

  1. Django model에 접속할 필요가 있을 때
  2. Synchronous 작업이 필요할 때

이 2가지 경우에는 Synchronous code로 작성해야만 한다. agiref.sync.sync_to_async 및 channels.db.database_sync_to_async와 같은 유틸리티를 사용하여 Asynchronous consumer에서 Synchronous code를 호출할 수 있습니다. 그러나 async-native libraries만 사용하는 경우보다 성능 향상 효과가 낮습니다.

 

'개발 공부 > Django' 카테고리의 다른 글

django channels - Consumer  (0) 2021.07.18
django channels - Heroku deploy  (0) 2021.07.15
django channels - Tutorial Part 2: Implement a Chat Server  (0) 2021.07.04
django channels - Tutorial Part 1: Basic Setup  (0) 2021.07.03
Serializer  (0) 2021.06.22