PostgreSQL
 sql >> Teknologi Basis Data >  >> RDS >> PostgreSQL

Menggunakan Django ORM di utas dan menghindari terlalu banyak pengecualian klien dengan menggunakan BoundedSemaphore

ORM Django mengelola koneksi basis data dalam variabel lokal-utas. Jadi setiap utas berbeda yang mengakses ORM akan membuat koneksinya sendiri. Anda dapat melihatnya di beberapa baris pertama django/db/backends/__init__.py .

Jika Anda ingin membatasi jumlah koneksi database yang dibuat, Anda harus membatasi jumlah utas berbeda yang benar-benar mengakses ORM. Solusinya adalah dengan mengimplementasikan layanan yang mendelegasikan permintaan ORM ke kumpulan utas ORM khusus. Untuk mengirimkan permintaan dan hasilnya dari dan ke utas lain, Anda harus menerapkan semacam mekanisme penyampaian pesan. Karena ini adalah masalah produsen/konsumen yang khas, dokumen Python tentang threading harus memberikan beberapa petunjuk bagaimana mencapai ini.

Sunting: Saya baru saja mencari di Google untuk "pengumpulan koneksi Django". Ada banyak orang yang mengeluh bahwa Django tidak menyediakan kumpulan koneksi yang tepat. Beberapa dari mereka berhasil mengintegrasikan paket pooling terpisah. Untuk PostgreSQL, saya akan melihat middleware pgpool.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Generate_series di Postgres dari tanggal mulai dan akhir dalam sebuah tabel

  2. Spring Boot REST · @Constraint untuk dihapus?

  3. pgbackups format dump tidak valid:pulihkan bahkan dengan tautan unduhan Dropbox

  4. Apakah prosedur tersimpan berjalan dalam transaksi basis data di Postgres?

  5. Dapatkan tanggal pertama bulan di postgres