Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Node.js, Request, MySQL, dan Connection Pooling mengarah ke Perilaku Pemblokiran/Pembekuan Tanpa Batas?

Anda menggunakan loop sinkron untuk menerapkan sumber daya asinkron. Anda tidak bisa melakukan itu.

Loop while Anda mengisi kumpulan database dan kemudian mengulang sekali lagi dan memblokir getConnection yang kemudian memblokir seluruh loop acara Node.js.

Anda dapat menggunakan async paket untuk melakukan loop while asinkron.

async#forever panggilan akan melakukan apa yang ingin Anda capai.

Juga, kode Anda membocorkan koneksi database. Anda harus meletakkan connection.end() pertama dalam panggilan balik kecuali Anda akan menggunakan koneksi yang sama lagi. Jika tidak, kesalahan akan membocorkan koneksi database.

pool.getConnection(function (err, connection) {
    if (err) throw err;
    connection.query('SELECT 1 + 1 AS solution', function(err, rows, fields) {
      connection.end(); // return to pool before evaluating error.
      if (err) throw err;
      console.log('The solution is: ', rows[0].solution);
    });
});


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Permintaan SQL untuk mengambil SUM dalam berbagai rentang DATE

  2. 2 Cara Mendaftar semua Fungsi di MySQL

  3. $this->db->insert_id() tidak berfungsi di mysql codeigniter

  4. Layanan pelaporan sumber terbuka MySQL

  5. masalah instalasi mysql-python (di mac os x lion)