Du letar efter namngivna lås (försiktiga, farliga saker, kom inte runt med att experimentera med lås på produktionsservrar :D).
Ta en titt på:
A1 :Välj en unik sträng att låsa på och använd GET_LOCK
på den (säg, GET_LOCK('conversation_' || [id])
; om den returnerar 1
låset är ditt. Gör vad du vill och ring sedan RELEASE_LOCK
(med hänsyn till alla möjliga scenarier, inklusive fel).
A2 :Den andra parametern för GET_LOCK
är en timeout på sekunder . Om åtgärden timeout GET_LOCK
returnerar 0
.
Från den officiella dokumentationen
Fet fet är min:
- Betyder att du bara kan hålla ett lås per anslutning (inte ett problem för ditt användarfall)
- Betyder att lås släpps när du stänger anslutningen
- Betyder att två olika anslutningar (även från samma pool) kanske inte får samma utseende på en gång.