2014-04-22 26 views
5

लेख running-mongodb-queries-concurrently-with-go में कहा कि mgo.DialWithInfo: एक सत्र जो MongoDB के लिए सॉकेट कनेक्शन की एक पूल का कहना बनाएं, लेकिन जब मैं समारोह DialWithInfo की documentacion में की तलाश में मैं कुछ भी नहीं मिलता है कि पूल कनेक्शन के बारे में मुझसे बात करें, केवल मुझे Dial फ़ंक्शन डायल फ़ंक्शन में कुछ मिलता है जो कहा गया है: इस विधि को आमतौर पर दिए गए क्लस्टर के लिए केवल एक बार कहा जाता है। उसी क्लस्टर में आगे के सत्र प्राप्त सत्र पर नई या कॉपी विधियों का उपयोग करके स्थापित किए जाते हैं। इससे उन्हें अंतर्निहित क्लस्टर साझा किया जाएगा, और कनेक्शन के पूल को उचित तरीके से प्रबंधित किया जाएगा।कनेक्शन पूल

  • क्या कोई मुझे बता सकता है कि एमजीओ पर पूल कनेक्शन कैसे काम करता है और यदि संभव हो तो इस पूल को स्थापित किया गया है?
  • क्या यह सच है कि DialWithInfo पूल कनेक्शन बनाता है या केवल यह डायल फ़ंक्शन है जो इस पूल को बनाता है?

अग्रिम

उत्तर

8

source code for the Dial function calls में देख रहे हैं धन्यवाद, आप Dial फ़ंक्शन को कॉल DialWithTimeout समारोह जो DialWithInfo फ़ंक्शन को कॉल देख सकते हैं। तो कार्यों के बीच अंतर के बारे में अपने प्रश्न का उत्तर देने के लिए, ऐसा लगता है कि DialDialWithTimeout के लिए एक सुविधाजनक रैपर है, जो बदले में DialWithInfo के लिए एक सुविधाजनक आवरण है, इसलिए परिणामस्वरूप एक ही कनेक्शन पूल होता है।

उस कनेक्शन पूल को प्रबंधित करने के तरीके के रूप में, आपको यह सही तरीके से मिला है।

उसी समूह में आगे के सत्र प्राप्त सत्र पर नई या प्रतिलिपि विधियों का उपयोग करके स्थापित किए जाते हैं। इससे उन्हें अंतर्निहित क्लस्टर साझा किया जाएगा, और कनेक्शन के पूल को उचित तरीके से प्रबंधित किया जाएगा।

तो Dial या DialWithTimeout या DialWithInfo लिए एक कॉल, कनेक्शन पूल स्थापित करेगा यदि आप एक से अधिक सत्र की आवश्यकता होती है, तो सत्र से इसे प्राप्त करने के से जो भी डायल समारोह आप करने के लिए चुना लौटे session.New() या session.Copy() तरीकों का उपयोग उपयोग।

+0

हालांकि, लागू होने पर प्रमाणीकरण बरकरार रखने के बाद से 'कॉपी() 'का उपयोग किया जाना चाहिए। –

संबंधित मुद्दे