작성
·
346
·
수정됨
0
1. 동기방식의 consumer 클래스와 비동기방식의 consumer클래스의 차이가 뭔지 궁금합니다.
jsonwebsocketconsumer에서 모델을 임포트하여 db를 수정해도 문제가 없을까요??
웹소켓에 연결할때 마가 하나의 연결당 하나의 consumer가 생성되는건가요??
답변 1
0
안녕하세요.
파이썬 3.5부터 async/await 문법을 사용하여 비동기 코드를 작성할 수 있으며, asyncio라는 내장 모듈을 사용하여 비동기 작업을 관리할 수 있게 되었습니다.
Async Consumer가 기본 구현이며, Sync Consumer는 Async Consumer를 래핑하는 구조이며, sync_to_async 장식자를 통해 Async Consumer의 기능을 활용합니다.
async에 대해서는 대개 익숙하지 않기 때문에 Sync Consumer로 학습하시고, 이후에 Sync Consumer로 구현된 코드를 Async Consumer로 변경해서 서비스하시길 권해드립니다.
Consumer를 포함한 장고 내 어떤 곳에서든 모델을 포함한 데이터베이스 접근을 하실 수 있습니다. 어떤 문제가 예상되시나요?
옙. 말씀하신 대로, 서버 단에서는 웹소켓 연결을 물고 연결을 유지를 책임질 대상이 필요하고, Consumer가 그러한 역할을 합니다. 매 웹소켓 연결마다 Consumer Instance가 생성되어 각 웹소켓 연결을 담당하게 됩니다.
살펴보시고, 댓글 남겨주세요.
화이팅입니다. :-)
제가 찾아본 정보로는 동기구현과 비동기구현은 성능차이만 있다는데 그것이 맞나요??
맞다면 왜 그런것인가요??
jsonwebsocketconsumer를 async로 바꾸면 안에서 모델을 조작하는 부분에 sync_to_async를 해주고 원래 async_to_sync만 없애주면 되나요??