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.