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

कब डिस्कनेक्ट करना है और कब पीजी क्लाइंट या पूल को समाप्त करना है

सबसे पहले, pg दस्तावेज़ से *:

const { Pool } = require('pg')

const pool = new Pool()

// the pool with emit an error on behalf of any idle clients
// it contains if a backend error or network partition happens
pool.on('error', (err, client) => {
  console.error('Unexpected error on idle client', err) // your callback here
  process.exit(-1)
})

// promise - checkout a client
pool.connect()
  .then(client => {
    return client.query('SELECT * FROM users WHERE id = $1', [1]) // your query string here
      .then(res => {
        client.release()
        console.log(res.rows[0]) // your callback here
      })
      .catch(e => {
        client.release()
        console.log(err.stack) // your callback here
      })
  })

यह कोड/निर्माण पर्याप्त है /आपके पूल को काम करने के लिए बनाया गया है, आपकी बात यहां providing प्रदान करते हुए चीज़ें। यदि आप अपना आवेदन बंद करते हैं, तो कनेक्शन सामान्य रूप से लटका रहेगा, क्योंकि पूल अच्छी तरह से बनाया गया है, बिल्कुल लटका नहीं है, भले ही यह लटकने का एक मैनुअल तरीका प्रदान करता हो, लेख .पिछले लाल खंड को भी देखें जो कहता है कि "आपको हमेशा ग्राहक को वापस करना होगा..." स्वीकार करने के लिए

  • अनिवार्य client.release() निर्देश
  • बहस करने से पहले।
  • आप अपने कॉलबैक में क्लाइंट का दायरा/बंद करते हैं।

फिर , pg.client प्रलेखन से *:

एक वादे के साथ सादा पाठ क्वेरी

const { Client } = require('pg').Client
const client = new Client()
client.connect()
client.query('SELECT NOW()') // your query string here
  .then(result => console.log(result)) // your callback here
  .catch(e => console.error(e.stack)) // your callback here
  .then(() => client.end())

मुझे सबसे स्पष्ट वाक्य रचना लगता है:

  • परिणाम जो भी हो, आप क्लाइंट को समाप्त कर देते हैं।
  • आप परिणाम को समाप्त होने से पहले एक्सेस कर सकते हैं ग्राहक।
  • आप अपने कॉलबैक में क्लाइंट का दायरा/बंद नहीं करते हैं

यह दो वाक्यविन्यासों के बीच इस प्रकार का विरोध है जो पहली नजर में भ्रमित हो सकता है, लेकिन वहां कोई जादू नहीं है, यह कार्यान्वयन निर्माण वाक्यविन्यास है। अपने पर ध्यान दें कॉलबैक और प्रश्न, उन निर्माणों पर नहीं, बस अपनी आंखों के लिए सबसे सुंदर चुनें और इसे अपने साथ खिलाएं कोड।

*मैंने // यहां आपकी xxx टिप्पणियां जोड़ दी हैं स्पष्टता के लिए



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Ubuntu 16.04 पर PostgreSQL डेटाबेस बनाना और हटाना

  2. मैं मैक ओएस एक्स 10.8.2 पर पोस्टग्रेस्क्ल 9.2 डिफ़ॉल्ट उपयोगकर्ता (आमतौर पर 'पोस्टग्रेज') पासवर्ड कैसे रीसेट करूं?

  3. पोस्टग्रेज क्वेरी प्लान क्यों पंक्ति अनुमान इतना गलत है

  4. जांचें कि क्या sqlalchemy तालिका खाली है

  5. पोस्टग्रेज स्थानीय विकास डीबी में हेरोकू प्रोडक्शन डीबी की प्रतिलिपि बनाते हैं