- Shipped
- 2026년 9월 27일 오전 6:14 UTC
- Author
- Kamo
- Commit
- 279a389
채팅은 두 가지 방법으로 회원 통지를 한 번에 실패했습니다. 대화를 열고 Retry가 눌렀을 때까지 "Couldn't로드 메시지"와 전송 된 메시지는 때때로 도착하지 않았습니다. 둘 다 MediaService는 YugabyteDB SQLState 40001, "Restart read required"로 500에 응답했습니다 - 팟 모두에서 매일 로그를 기록하고, 각 500 웹 BFF는 이번 주에 한 줄을 기록했습니다. Yugabyte는 거래의 FIRST 성명일 때만 무료로 읽습니다. 더 보기 역사 로드는 콜러의 회원 행을 읽으려는 세 번째 문에 액세스 할 수 있습니다. — 대화 표시를 열고 같은 순간에 읽습니다. 메시지를 보내 그런 다음 같은 거래에서 roster와 org의 도메인을 읽습니다. 행을 읽는 것 기록 된 순간 이전 전체 요청 실패; 순간 나중에 쓰기 정착했다, 이는 왜 Retry는 항상 일했습니다. - 채팅 창의 요청 (보장, 역사, 마크 읽기, 채팅 목록, 편집, 얼굴, 회원, 영수증) @RetryOnDbConflict를 수행하고, 캐치 올스는 충돌을 시켰습니다. *********** 그래서 고문은 새로운 거래에서 다시 실행할 수 있습니다. 뚱 베어 500 으로 재부에 보이지 않았습니다. 안전 : 모든 전송 발표는 후반입니다. - Mark-read 더 이상 포인트러가 이미 있을 때 회원 행을 다시 작성하지 않습니다. (ChatReadPointerRepository, 가드 UPDATE). 개방 당 몇 번 호출하고, 모든 rewrite는 회원의 자신의 역사 부하에 대한 기회 또는 실패로 보내. 자주 묻는 질문 아직 전으로 간다. - A send는 clientMessageId (ChatSendLedger, Redis)를 수행 할 수 있습니다. 이미 보내는 구호 헌신은 그 전송의 응답에 응답, 그리고 여전히 비행에서 409 SEND IN PROGRESS, 그래서 클라이언트는 두 번 메시지를 게시하지 않고 다시 시도 할 수 있습니다. 실패가 열립니다. ratchet ****************는 모든 @Transactional 채팅 핸들러를 보유하고 있습니다. retry, 그리고 다시는 충돌을 잡아 잡습니다. MediaControllerDbConflictTest 재생 실제 프록시를 통해 생산 실패: 충돌 시도 롤, 두 번째 거래가 한 번 진행되며 실패한 시도를 위해 발표되지 않습니다. 1384 테스트 패스.
