KamoCRM

대화로드와 메시지는 첫 번째 시도에 보냅니다

FixMediaService
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 테스트 패스.

All changes

Like what you see shipping?

All of it arrives in your workspace on its own. Start on the free plan and read this page again in a month.

Start Free ForeverView Pricing