- TIL. 최종프로젝트(22) 비동기 DB처리 목차
[오늘 한일]
- 배틀 초대하기 기능 작성
[오늘 배운점]
장고 channels
<비동기 DB처리>
장고 channels를 사용하게되면,
비동기식으로 동작하는 컨슈머를 작성하게된다. (동기식도 있긴하다)
이 컨슈머 안에서는
모델을 통해 DB를 가져올때 동기처리를 비동기에 넣어주는 동작이 필요하다.
이때 사용하는 기능이
from channels.db import database_sync_to_async
위의 모듈이다.
이는 별도 함수에 데코레이터로 부여할수도 있고
모듈 그대로 메소드처럼 사용할수도 있다.
그리고 모든 연산 등 처리 앞에는 await를 붙여줘야 한다.
@database_sync_to_async
def get_notification(self):
(중략)
혹은
await database_sync_to_async(Notification.objects.get)()
위는 작성한 코드이다.