Ces temps morts se sont-ils produits après des périodes d'inactivité ? Il est probable que votre pool de connexions soit devenu obsolète après être resté inactif pendant trop longtemps.
Si oui, il y a deux façons de procéder :
-
Attrapez les exceptions de délai d'attente du socket et votre demande immédiate devrait pouvoir accéder à un nouveau pool de connexions. (c'est le cas si l'option de reconnexion automatique dans votre objet de connexion est laissée sur true, ce qui est la valeur par défaut.)
-
Utilisez un keep-alive personnalisé pour envoyer régulièrement un ping au serveur mongod en utilisant le même pool de connexions, afin que le pool reste à jour.
L'option 1 est facile à mettre en œuvre, mais le délai d'attente par défaut du socket est d'environ 30 secondes, ce qui est plutôt excessif. Vous pouvez modifier ce paramètre selon vos besoins.
L'option 2 est un peu un hack, impliquant le threading.