PostgreSQL
 sql >> Database >  >> RDS >> PostgreSQL

Condividi la connessione a postgres db tra i processi in Python

Non puoi condividere in modo sano una connessione DB tra processi del genere. Puoi in qualche modo condividere una connessione tra thread , ma solo se ti assicuri che la connessione venga utilizzata solo da un thread alla volta. Ciò non funzionerà tra i processi perché esiste uno stato lato client per la connessione archiviata nello spazio degli indirizzi del client.

Se hai bisogno di un gran numero di lavoratori simultanei, ma non usano sempre il DB, dovresti avere un gruppo di lavoratori database processi che gestiscono tutti gli accessi al database e scambiano dati con gli altri tuoi processi di lavoro. Ogni processo di lavoro del database dispone di una connessione DB. Gli altri processi parlano al database solo tramite i tuoi database worker.

Le code multiprocessing, i fifos, ecc. di Python offrono funzionalità di messaggistica appropriate per questo.