PostgreSQL
 sql >> Base de Dados >  >> RDS >> PostgreSQL

Compartilhe a conexão com o banco de dados postgres entre processos em Python


Você não pode compartilhar sensatamente uma conexão de banco de dados entre processos como esse. Você pode mais ou menos compartilhar uma conexão entre threads , mas somente se você garantir que a conexão seja usada apenas por um thread por vez. Isso não funcionará entre os processos porque há um estado do lado do cliente para a conexão armazenada no espaço de endereço do cliente.

Se você precisar de um grande número de trabalhadores simultâneos, mas eles não estiverem usando o banco de dados o tempo todo, você deve ter um grupo de trabalhadores de banco de dados processos que tratam de todo o acesso ao banco de dados e trocam dados com seus outros processos de trabalho. Cada processo de trabalho de banco de dados tem uma conexão de banco de dados. Os outros processos apenas se comunicam com o banco de dados por meio de seus trabalhadores de banco de dados.

As filas de multiprocessamento do Python, fifos, etc, oferecem recursos de mensagens apropriados para isso.