업데이트 후 읽은 Django가 최신 값을 가져오지 않습니다.
저는 MariaDB를 데이터베이스로 사용하는 장고 프로젝트를 진행하고 있습니다.프로젝트에는 데이터베이스에 직렬화된 상태가 있으며 REST API 게시를 통해 자주 업데이트됩니다.호출을 통해 상태 업데이트를 처리하기 위해 직렬화기를 사용합니다.update(instance, validated_data)
그런 다음 장고 채널을 사용하여 브라우저 클라이언트에 웹소켓 메시지를 보냅니다.
브라우저 클라이언트는 WebSocket 메시지를 수신하고 다음을 사용하여 최신 상태를 요청합니다.get
.
저는 생산 중인 유비콘과 6개의 작업실로 장고를 운영하고 있습니다.
그러나 클라이언트가 마지막 업데이트 이전 상태인 이전 상태를 얻는 문제가 발생합니다.이로 인해 클라이언트에 잘못된 정보가 표시됩니다.
이것은 데이터베이스 격리 수준과 관련이 있는 것 같습니다.READ COMMITTED
로 변경하시겠습니까?SERIALIZABLE
문제를 해결하시겠습니까?또는 보다 엄격한 잠금이 필요한 특정 테이블에 대해 서로 다른 격리 수준을 설정할 수 있습니까?
어떤 도움이나 조언이라도 주시면 감사하겠습니다!
@Bill Karwin과 @yth가 제안했듯이 데이터베이스 업데이트가 커밋되기 전에 웹 소켓 메시지를 보내는 것처럼 들립니다.제 생각에 저는 사용할 수 있을 것 같습니다.transaction.on_commit
그런 일이 일어나지 않도록 하기 위해.
또한, 나는 추가했습니다.never_cached
내 의견으로는이렇게 하면 브라우저에서 결과 캐시를 중지할 수 있습니다.
https://docs.djangoproject.com/en/4.2/topics/db/transactions/ #실행-실행-실행-실행-실행-실행-실행-실행-실행-실행-종료-
언급URL : https://stackoverflow.com/questions/76153837/django-read-after-update-is-not-getting-the-latest-value
'itsource' 카테고리의 다른 글
레일에서 루비 줄 바꿈 없이 콘솔에 "puts"를 사용하려면 어떻게 해야 합니까? (0) | 2023.06.16 |
---|---|
Javascript를 사용한 터치 스크린 장치 (0) | 2023.06.16 |
셀 범위에 "F2"+"Enter" 강제 적용 (0) | 2023.06.16 |
IHTTP 핸들러 대 IHTTP 모듈 (0) | 2023.06.16 |
MariaDB 커넥터 python 실행 쿼리 (0) | 2023.06.16 |