2015-07-06 4 views
7

पाइथन लिपि के अंत में psycopg2 कनेक्शन बंद करने के नतीजे क्या हैं? उदाहरण के लिए, निम्नलिखित स्निपेट पर विचार करें:क्या किसी स्क्रिप्ट के अंत में Psycopg2 कनेक्शन बंद करना आवश्यक है?

import psycopg2 
psycopg2.connect("dbname=test") 

स्क्रिप्ट एक कनेक्शन खोलता है, लेकिन अंत में इसे बंद नहीं करता है। निष्पादन के अंत में कनेक्शन अभी भी खुला है? यदि हां, तो कनेक्शन बंद करने के साथ कोई समस्या है?

उत्तर

4

आम तौर पर जब आपका पाइथन प्रोग्राम निकलता है, तो उसके सभी सॉकेट बंद हो जाएंगे, और लेनदेन बंद हो जाएंगे। लेकिन बहुत अंत में कनेक्शन बंद करना अच्छा अभ्यास है।

जैसे ही आपको इसकी आवश्यकता नहीं है, कनेक्शन को बंद करने के परिणामस्वरूप सिस्टम संसाधनों को मुक्त करने के परिणामस्वरूप। जो हमेशा अच्छा होता है।

ध्यान रखें कि यदि आप अपना कनेक्शन बंद करते हैं, तो पहले अपने परिवर्तनों को करने के लिए। जैसा कि आप psycopg2 एपीआई में पढ़ सकते हैं:

अब कनेक्शन बंद करें (जब भी डेल निष्पादित किया जाता है)। इस बिंदु से कनेक्शन अनुपयोगी होगा; अगर कनेक्शन के साथ किसी भी ऑपरेशन का प्रयास किया जाता है तो एक इंटरफ़ेस त्रुटि उठाई जाएगी। कनेक्शन का उपयोग करने की कोशिश कर रहे सभी कर्सर ऑब्जेक्ट्स पर भी लागू होता है। ध्यान दें कि परिवर्तन करने से बिना कनेक्शन की को बंद करने के लिए पहले कारण होगा किसी भी लंबित परिवर्तन खारिज किया जा करने के लिए के रूप में अगर एक रोलबैक प्रदर्शन किया गया था

+1

बंद करने नहीं कनेक्शन भी PostgreSQL के लॉग में कष्टप्रद त्रुटियों का उत्पादन करेगा। –

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