KamoCRM

Nu mai distrugeţi biletul care i-a declanşat

FixMediaService
Shipped
10 august 2026 la 17:57 UTC
Author
Kamo
Commit
4007c5b

Rutarea unui nou bilet a fugit în interiorul tranzacției de creare, astfel încât orice a lovit a rulat biletul înapoi cu ea și membrul cere ajutor a primit "A eșuat la crearea biletului" cu nimic salvat oriunde. Două lucruri lovit, ambele latent Până când cererile de chat au început să ajungă la acest cod, nu a fost niciodată executat în producție, așa că nu a întâlnit YugabyteDB: - getEligibleAgents măturat fiecare rând aplicat-drepturi în org și filtrate în Java: mii de rânduri s-au alăturat membrilor, rula târziu într-un scris tranzacţie. YugabyteDB poate doar reporni transparent o citire care este prima declarație în tranzacția sa, astfel încât acest ridicat "Restart citit necesar" (SQLstatale 40001). Acum foloseşte căutarea indexată cu filtrul drept care SupportQueeuService și SupportPendCountService sunt deja utilizate. - Un dispozitiv de urmărire nou creat a fost blocat imediat. Pesimistic scris. Entitatea este neversionat, astfel încât este SELECT ... PENTRU UPDATE față de un rând aceeași tranzacție neangajată avea doar introdus; returnează nimic și Hibernate ridică StalObjectStateException. Nimic nu poate lupta pentru un rând care nu există încă Constrângerea pe TPIC ID este ceea ce stabilește o cursă creație. Tractoare existente sunt încă blocate. Structural, rutarea se întâmplă acum în propria tranzacție după ce biletul are angajat (SuportController apelează rutaNewTicket, care se încadrează înapoi la anunță NewTicket în cazul în care nu reușește). Atribuirea este o comoditate; biletul este Lucrul care trebuie să supravieţuiască. Acest lucru oferă, de asemenea, lectura mare a misiunii tranzacție în cazul în care este prima declarație.

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