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.