Sie suchen nach benannten Sperren (Vorsicht, gefährliches Zeug, kommen Sie nicht herum, mit Sperren auf Produktionsservern zu experimentieren :D).
Schauen Sie sich an:
A1 :Wählen Sie eine eindeutige Zeichenfolge zum Sperren und verwenden Sie GET_LOCK
darauf (z. B. GET_LOCK('conversation_' || [id])
; wenn es 1
zurückgibt das Schloss gehört dir. Machen Sie was Sie wollen und rufen Sie später RELEASE_LOCK
auf (unter Berücksichtigung aller möglichen Szenarien, einschließlich Fehler).
A2 :Der zweite Parameter von GET_LOCK
ist ein Timeout in Sekunden . Wenn die Operation GET_LOCK
abläuft gibt 0
zurück .
Aus der offiziellen Dokumentation
Fettdruck gehört mir:
- Bedeutet, dass Sie nur eine Sperre pro Verbindung halten können (kein Problem für Ihren Anwendungsfall)
- Bedeutet, dass Sperren aufgehoben werden, sobald Sie schließen die Verbindung
- Bedeutet, dass zwei verschiedene Verbindungen (selbst aus demselben Pool) möglicherweise nicht gleichzeitig dasselbe Aussehen erhalten.