Търсите наименувани ключалки (внимавайте, опасни неща, не експериментирайте с ключалки на производствени сървъри :D).
Разгледайте:
A1 :Изберете уникален низ за заключване и използвайте GET_LOCK върху него (да кажем, GET_LOCK('conversation_' || [id]); ако върне 1 ключалката е твоя. Направете каквото искате и по-късно извикайте RELEASE_LOCK (отчитане на всички възможни сценарии, включително грешки).
A2 :Вторият параметър на GET_LOCK е таймаут в секунди . Ако операцията изтече GET_LOCK ще върне 0 .
От официалната документация
Удебелените са мои:
- Означава, че можете да държите само едно заключване на връзка (не е проблем за вашия потребителски случай)
- Означава, че ключалките ще бъдат освободени, след като затворите връзката
- Означава, че две различни връзки (дори от един и същ пул) може да не придобият един и същ вид наведнъж.