PostgreSQL
 sql >> डेटाबेस >  >> RDS >> PostgreSQL

psycopg2 और अनंत पायथन लिपि

इस तरह की चीज़ के लिए एक कनेक्शन पूल अच्छा काम करता है। मैंने इसके साथ उत्पादन में काम नहीं किया है (मुख्य रूप से Django या SQLAlchemy का उपयोग करके), लेकिन psycopg2.pool कुछ अलग कार्यान्वयन शामिल हैं (SimpleConnectionPool या PersistentConnectionPool ) जो शायद आपकी आवश्यकता के अनुरूप होगा। सामान्यतया, एक पूल न केवल एक साझा संसाधन के रूप में कनेक्शन को प्रबंधित करने में मदद करता है, बल्कि जरूरत पड़ने पर कनेक्शन का परीक्षण और पुन:आरंभ करने में भी मदद करता है।

from psycopg2 import pool
conn_pool = pool.PersistentConnectionPool(minconn, maxconn, **dbopts)

def work_method():
    conn = conn_pool.getconn()
    with conn.cursor() as stmt:
        stmt.execute(sql)
    conn_pool.putconn(conn)

putconn अत्यंत महत्वपूर्ण है, ताकि एक अपवाद पूल को यह सोचकर न छोड़े कि कनेक्शन अभी भी उपयोग में है। संदर्भ प्रबंधक के रूप में इसे संभालना अच्छा होगा:

import contextlib

@contextlib.contextmanager
def get_db_connection():
    conn = conn_pool.getconn()
    yield conn
    conn_pool.putconn(conn)

def work_method():
    with get_db_connection() as conn:
        with conn.cursor() as stmt:
            stmt.execute(sql)

आशा है कि यह मदद करता है।




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. django . में sqlite से postgresql में माइग्रेशन

  2. समय समग्र कार्य में अतिव्यापी अवधियों को बाहर करें

  3. पोस्टग्रेएसक्यूएल 12:के-निकटतम पड़ोसी अंतरिक्ष विभाजन को लागू करना सामान्यीकृत खोज ट्री इंडेक्स

  4. ऑपरेटर मौजूद नहीं है:पूर्णांक =पूर्णांक [] किसी के साथ एक प्रश्न में

  5. क्लाउड विक्रेता डीप-डाइव:DigitalOcean पर PostgreSQL