KamoCRM

Rozmowa i wiadomość wysyłają za pierwszym razem

FixMediaService
Shipped
27 września 2026 06:14 UTC
Author
Kamo
Commit
279a389

Dyskusja nie powiodła się na dwa sposoby. "Nie można załadować wiadomości", dopóki Retry nie został naciśnięty, a wysyłana wiadomość czasami nigdy nie przybył. Obie były MediaService odpowiadając 500 z YugabyteDB SQLState 40001, "Restart read required" - logowane codziennie na obu kapsułach, i co 500 BFF WWW nagrane w tym tygodniu łączy się z jednym. Yugabyte ponownie rozpoczyna czytanie za darmo tylko wtedy, gdy jest to pierwsze oświadczenie swojej transakcji. W Historia sprawdza dostęp do trzeciego oświadczenia czytając wiersz członkostwa rozmówcy - rząd, który otwiera znaki rozmowy odczytywane w tej samej chwili. Wysyłanie pisze wiadomość i następnie odczytuje listę i domenę org w tej samej transakcji. Albo czytać spotkanie rząd pisemny moment wcześniej nie powiodło się całe żądanie; moment później zapis został rozliczony, co jest Dlaczego Retry zawsze pracował. - Zapytania okna czatu (wysyłanie, historia, mark- read, lista czatów, edycja, twarze, członkowie, paragons) carry @ RetriOnDbConflict, and their catch- alls let a conflict out Aby doradca mógł ponownie uruchomić go w nowej transakcji. Połykane do 500 było niewidoczne dla powtórki. Bezpieczne: wszystko, co się ogłosi, jest po-commit. - Mark- czytaj nie przepisywać wiersza członkostwa, gdy wskaźnik jest już tam (ChatReadPointerRepozytorium, strzeżone UPDATE). Nazywano to kilka razy na otwarte, i Każda zmiana była szansą na załadowanie historii członka lub wysłanie na porażkę. Odczytywany paragon Nadal wychodzi jak wcześniej. - A send may carry a clientMessageId (ChatSendLedger, Redis): a retry of a send that already popełnione zostaje odebrane z odpowiedzi wysłanej, a jeden nadal w locie z 409 SEND _ IN _ PROGRESS, dzięki czemu klient może ponownie spróbować bez wysyłania wiadomości dwukrotnie. Niepowodzenia. Trachet * * * * * * * * * * * * * * * * * * * posiada każdy @ Transactional chat handler ponownie spróbować, i ponownie spróbować złapać, że pozwala konflikt. MediaControllerDbConflictTest powtarza niepowodzenie produkcji poprzez prawdziwy proxy: sprzeczna próba wraca, sekundę transaction commits once, and nothing is notified for the try that failed. 1384 testy przechodzą.

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