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

Flask và SQLAlchemy gây ra rất nhiều IDLE trong các kết nối giao dịch trong PostgreSQL

Tôi đã thấy tình huống này xảy ra khi bạn chạy Flask ở Chế độ gỡ lỗi . Nếu mã của bạn ném ra một ngoại lệ và trình gỡ lỗi bắt đầu hoạt động, giao dịch sẽ không bao giờ bị "khôi phục" hoặc "bị loại bỏ". Do đó, phiên được sử dụng theo yêu cầu không thành công sẽ không bao giờ được quay trở lại nhóm.

Giải pháp là tắt chế độ gỡ lỗi.

CHỈNH SỬA:

Có một tình huống khác mà tôi đã thấy điều này xảy ra. Nếu bạn có mã chạy tự động (tức là không phải là một phần của giao dịch HTTP - giống như một luồng độc lập được bắt đầu và sinh ra khi khởi chạy ứng dụng Flask), nó thường sẽ liên quan đến chế độ ngủ. Nếu bạn truy cập phiên trước khi ngủ, thì bạn sẽ kết thúc với một giao dịch bị treo như thế này trong khi ngủ.

Một khả năng khác là bạn đang truy cập một phiên từ chức năng tạo ứng dụng. Nếu bạn làm như vậy, hãy đảm bảo .remove () nó. Nếu không, phiên đó có thể vẫn bị treo trên chuỗi chính trong ứng dụng gevent.



  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ó thể sử dụng hai cơ sở dữ liệu khác nhau cho ứng dụng web ngoại tuyến không

  2. Chèn psycopg2 chưa được lưu

  3. làm thế nào để thu thập nhiều giá trị dưới dạng một chuỗi duy nhất trong postgres?

  4. Tổng quan về các tiện ích mở rộng đáng tin cậy trong PostgreSQL 13

  5. postgres không nhận ra bảng tạm trong chức năng