आप नामित ताले की तलाश कर रहे हैं (सावधान, खतरनाक सामान, उत्पादन सर्वर पर ताले के साथ प्रयोग करने से बचें:डी)।
एक नज़र डालें:
A1 :लॉक करने के लिए एक अद्वितीय स्ट्रिंग चुनें और GET_LOCK
. का उपयोग करें उस पर (कहते हैं, GET_LOCK('conversation_' || [id])
; अगर यह 1
returns लौटाता है ताला तुम्हारा है। आप जो चाहें करें और बाद में RELEASE_LOCK
. पर कॉल करें (त्रुटियों सहित सभी संभावित परिदृश्यों के लिए लेखांकन)।
A2 :GET_LOCK
. का दूसरा पैरामीटर सेकंड . में समयबाह्य है . यदि ऑपरेशन का समय समाप्त हो गया है GET_LOCK
लौटाएगा 0
।
आधिकारिक दस्तावेज से
बोल्ड मेरे हैं:
- इसका मतलब है कि आप प्रति कनेक्शन केवल एक लॉक रख सकते हैं (आपके उपयोगकर्ता मामले के लिए कोई समस्या नहीं)
- इसका मतलब है कि आपके बंद . के बाद लॉक जारी हो जाएंगे कनेक्शन
- इसका मतलब है कि दो अलग-अलग कनेक्शन (यहां तक कि एक ही पूल से भी) एक ही बार में समान रूप नहीं प्राप्त कर सकते हैं।