PostgreSQL
 sql >> Datenbank >  >> RDS >> PostgreSQL

Teilen Sie die Verbindung zur Postgres-Datenbank über Prozesse in Python hinweg

Sie können eine DB-Verbindung nicht vernünftig für solche Prozesse freigeben. Sie können irgendwie Teilen Sie eine Verbindung zwischen Threads , aber nur, wenn Sie sicherstellen, dass die Verbindung jeweils nur von einem Thread verwendet wird. Das funktioniert nicht zwischen Prozessen, weil es einen clientseitigen Status für die Verbindung gibt, die im Adressraum des Clients gespeichert ist.

Wenn Sie eine große Anzahl gleichzeitig arbeitender Mitarbeiter benötigen, diese jedoch nicht ständig die Datenbank verwenden, sollten Sie eine Gruppe von Datenbankarbeitern haben Prozesse, die den gesamten Datenbankzugriff handhaben und Daten mit Ihren anderen Arbeitsprozessen austauschen. Jeder Datenbank-Arbeitsprozess hat eine DB-Verbindung. Die anderen Prozesse kommunizieren nur über Ihre Datenbankarbeiter mit der Datenbank.

Pythons Multiprocessing-Warteschlangen, Fifos usw. bieten dafür geeignete Messaging-Funktionen.