मुझे लगता है कि पोस्टग्रेज़ में सलाहकार लॉकिंग के बारे में मुझे कुछ बुनियादी बात नहीं है। अगर मैं psql कमांड लाइन ग्राहक पर निम्न कमांड दर्ज करते हैं, समारोह सच रिटर्न दोनों बार:पोस्टग्रेज़ में सलाहकार ताले प्राप्त करना
SELECT pg_try_advisory_lock(20); --> true
SELECT pg_try_advisory_lock(20); --> true
मैं उम्मीद कर रहा था कि दूसरा आदेश झूठी लौटना चाहिए, के बाद से लॉक पहले अधिग्रहण किया गया है चाहिए। अजीब तरह, मैं निम्नलिखित मिलता है, सुझाव है कि ताला दो बार प्राप्त किया गया है:
SELECT pg_advisory_unlock(20); --> true
SELECT pg_advisory_unlock(20); --> true
SELECT pg_advisory_unlock(20); --> false
तो मुझे लगता है कि मेरे सवाल है, कैसे एक एक तरह से बंद हो जाता है कि यह फिर से अधिग्रहण किया जा रहा में एक सलाहकार ताला प्राप्त करता है?
उसी सत्र से आप जितनी बार चाहें उतनी बार लॉक प्राप्त कर सकते हैं; लेकिन आपको एक ही सत्र लॉक प्राप्त करने से पहले इसे उसी समय जारी करना होगा या सत्र बंद करना होगा। – kgrittn