Du leder efter navngivne låse (forsigtige, farlige ting, kom ikke udenom at eksperimentere med låse på produktionsservere :D).
Tag et kig på:
A1 :Vælg en unik streng at låse på, og brug GET_LOCK
på den (sig, GET_LOCK('conversation_' || [id])
; hvis den returnerer 1
låsen er din. Gør hvad du vil, og ring senere til RELEASE_LOCK
(der tager højde for alle mulige scenarier, inklusive fejl).
A2 :Den anden parameter af GET_LOCK
er en timeout i sekunder . Hvis handlingen udløber GET_LOCK
returnerer 0
.
Fra den officielle dokumentation
Fed skrift er min:
- Betyder, at du kun kan holde én lås pr. forbindelse (ikke et problem for dit brugertilfælde)
- Betyder, at låse frigives, når du lukker forbindelsen
- Betyder, at to forskellige forbindelser (selv fra den samme pool) muligvis ikke får det samme udseende på én gang.