PostgreSQL
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> PostgreSQL

Sử dụng Django ORM trong chuỗi và tránh quá nhiều ngoại lệ ứng dụng khách bằng cách sử dụng BoundSemaphore

ORM của Django quản lý các kết nối cơ sở dữ liệu trong các biến cục bộ của luồng. Vì vậy, mỗi luồng khác nhau truy cập ORM sẽ tạo kết nối riêng. Bạn có thể thấy điều đó trong vài dòng đầu tiên của django/db/backends/__init__.py .

Nếu bạn muốn giới hạn số lượng kết nối cơ sở dữ liệu được thực hiện, bạn phải giới hạn số lượng các luồng khác nhau thực sự truy cập ORM. Một giải pháp có thể là triển khai một dịch vụ ủy quyền yêu cầu ORM cho một nhóm các luồng ORM chuyên dụng. Để truyền các yêu cầu và kết quả của chúng từ và đến các luồng khác, bạn sẽ phải thực hiện một số loại cơ chế truyền thông báo. Vì đây là một vấn đề điển hình của nhà sản xuất / người tiêu dùng, các tài liệu Python về phân luồng sẽ đưa ra một số gợi ý về cách đạt được điều này.

Chỉnh sửa: Tôi vừa lập googled cho "tổng hợp kết nối django". Có nhiều người phàn nàn rằng Django không cung cấp một nhóm kết nối thích hợp. Một số người trong số họ đã quản lý để tích hợp một gói gộp riêng. Đối với PostgreSQL, tôi sẽ xem xét phần mềm trung gian 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. Cách tối ưu hóa postgres truy vấn

  2. Lỗi postgres trong chèn hàng loạt:quan hệ hibernate_sequence không tồn tại vị trí 17

  3. Cập nhật câu lệnh bằng cách sử dụng mệnh đề WHERE chứa các cột có Giá trị rỗng

  4. LibreOffice Calc thực thi một hàm PostgreSQL

  5. Thiết kế cơ sở dữ liệu để tạo bảng một cách nhanh chóng