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.