PostgreSQL
 sql >> база данни >  >> RDS >> PostgreSQL

Използване на Django ORM в нишки и избягване на твърде много клиентски изключения чрез използване на BoundedSemaphore

ORM на Django управлява връзките към базата данни в локални променливи на нишки. Така че всяка различна нишка, която има достъп до ORM, ще създаде своя собствена връзка. Можете да видите това в първите няколко реда на django/db/backends/__init__.py .

Ако искате да ограничите броя на направените връзки към базата данни, трябва да ограничите броя на различните нишки, които действително имат достъп до ORM. Решение може да бъде внедряването на услуга, която делегира ORM заявки към набор от специални ORM нишки. За да предавате заявките и техните резултати от и към други нишки, ще трябва да внедрите някакъв механизъм за предаване на съобщения. Тъй като това е типичен проблем за производител/потребител, документите на Python относно нишките трябва да дадат някои съвети как да се постигне това.

Редактиране: Току-що потърсих в Google „обединяване на връзките на django“. Има много хора, които се оплакват, че Django не предоставя подходящ пул за връзка. Някои от тях успяха да интегрират отделен пакет за обединяване. За PostgreSQL бих погледнал мидълуера на 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. EXECUTE...INTO...USING изразът в PL/pgSQL не може да се изпълни в запис?

  2. Как да конфигурирате PostgreSQL с Postgis за изчисляване на разстояния

  3. дали sql изразът гарантира атомарност в postgres

  4. Най-висока за всяка група

  5. Има ли някаква разлика в запазването на една и съща стойност в различни цели числа?