MongoDB
 sql >> Base de Dados >  >> NoSQL >> MongoDB

Exceção de tempo limite de soquete no Mongo


Esses tempos limite aconteceram após períodos de inatividade? É provável que seu pool de conexões tenha ficado obsoleto depois de permanecer inativo por muito tempo.

Em caso afirmativo, existem duas maneiras de fazer isso:

  1. Capture as exceções de tempo limite do soquete e sua solicitação imediata deverá ser capaz de acessar um novo conjunto de conexões. (isto é, se a opção de reconexão automática em seu objeto de conexão for deixada como true, que é o padrão.)

  2. Use um keep-alive personalizado para fazer ping no servidor mongod periodicamente usando o mesmo pool de conexões, para que o pool permaneça atualizado.

A opção 1 é fácil de implementar, mas o tempo limite padrão do soquete é de cerca de 30 segundos, o que é bastante excessivo. Você pode alterar essa configuração conforme necessário.

A opção 2 é um pouco hack, envolvendo threading.