"장고 컨슈머"의 두 판 사이의 차이
둘러보기로 가기
검색하러 가기
(새 문서: == 개요 == 장고 채널에서 사용하는 컨슈머에 대한 설명을 위한 문서. == 형태 == {| class="wikitable" |+ !항목 !SyncConsumer !AsyncConsumer |- |목적 |장...) |
(→형태) |
||
1번째 줄: | 1번째 줄: | ||
== 개요 == | == 개요 == | ||
장고 채널에서 사용하는 컨슈머에 대한 설명을 위한 문서. | 장고 채널에서 사용하는 컨슈머에 대한 설명을 위한 문서. | ||
+ | |||
+ | [실시간 채팅 말미의 내용을 이곳으로 가져와 정리하면 좋겠다.] | ||
== 형태 == | == 형태 == | ||
19번째 줄: | 21번째 줄: | ||
| | | | ||
| | | | ||
− | | | + | |비동기에서 동기코드를 쓰면 다른 이벤트를 못받는건가????? |
+ | 아마 쓰레드를 쓰지 않고 순차적으로 작동하는 듯한데, 이게 왜 문제가 되는지 모르겠다;;; | ||
|- | |- | ||
| | | | ||
| | | | ||
− | | | + | |DB를 쓰기 위한 방법이 없진 않다. |
+ | |||
+ | 굳이 비동기방식에서 DB를 사용하고자 한다면 database_sync_to_async를 사용하면 된다. | ||
+ | |} | ||
+ | |||
+ | === Generic consumer === | ||
+ | 뷰에서 함수형 뷰와 제너릭 뷰가 있었듯, 컨슈머도 여러 작업을 알아서 처리해주는 제네릭 컨슈머가 있다. 일반 컨슈머와의 차이는 알아서 접속종료 처리 등을 해준다는 것. 딱히 일반 컨슈머를 쓰는 이유는 찾지 못했다. | ||
+ | |||
+ | = Scope = | ||
+ | 뷰에 request가 있다면 컨슈머엔 scope가 있다. | ||
+ | |||
+ | request와 동일하게 사용자가 입력한 값, 기타정보들을 사전형태로 담고 있다.(담은 키도 request와 거의 동일하다고 보면 된다.) | ||
+ | |||
+ | ===속성=== | ||
+ | {| class="wikitable" | ||
+ | !속성 | ||
+ | !설명 | ||
+ | !활용 | ||
+ | |- | ||
+ | |method | ||
+ | |GET인가 POST인가의 정보. | ||
+ | |if self.scope['method'] == POST: | ||
+ | |- | ||
+ | |user | ||
+ | |요청자의 user계정이 담긴다. | ||
+ | |self.scope['user'] | ||
|} | |} | ||
[[분류:장고 웹소켓]] | [[분류:장고 웹소켓]] |
2022년 11월 6일 (일) 16:19 판
1 개요
장고 채널에서 사용하는 컨슈머에 대한 설명을 위한 문서.
[실시간 채팅 말미의 내용을 이곳으로 가져와 정리하면 좋겠다.]
2 형태
항목 | SyncConsumer | AsyncConsumer |
---|---|---|
목적 | 장고 ORM을 사용하는 경우.(동기식으로 쓰레드 안에서 실행)
기본적으로 이걸 사용하길 권장한다. |
비동기 코드를 수행하기 위해.(성능적인 면에서 우위)
비동기 라이브러리들을 사용하거나 성능을 향상시켜줄 수 있을 때 사용하길 권장한다. 데이터베이스 사용도 가능하다.(database_sync_to_async를 참고하자.) |
비동기에서 동기코드를 쓰면 다른 이벤트를 못받는건가?????
아마 쓰레드를 쓰지 않고 순차적으로 작동하는 듯한데, 이게 왜 문제가 되는지 모르겠다;;; | ||
DB를 쓰기 위한 방법이 없진 않다.
굳이 비동기방식에서 DB를 사용하고자 한다면 database_sync_to_async를 사용하면 된다. |
2.1 Generic consumer
뷰에서 함수형 뷰와 제너릭 뷰가 있었듯, 컨슈머도 여러 작업을 알아서 처리해주는 제네릭 컨슈머가 있다. 일반 컨슈머와의 차이는 알아서 접속종료 처리 등을 해준다는 것. 딱히 일반 컨슈머를 쓰는 이유는 찾지 못했다.
3 Scope
뷰에 request가 있다면 컨슈머엔 scope가 있다.
request와 동일하게 사용자가 입력한 값, 기타정보들을 사전형태로 담고 있다.(담은 키도 request와 거의 동일하다고 보면 된다.)
3.1 속성
속성 | 설명 | 활용 |
---|---|---|
method | GET인가 POST인가의 정보. | if self.scope['method'] == POST: |
user | 요청자의 user계정이 담긴다. | self.scope['user'] |