MongoDB
 sql >> Database >  >> NoSQL >> MongoDB

Eccezione di timeout del socket in Mongo

Questi timeout si sono verificati dopo periodi di inattività? È probabile che il tuo pool di connessioni sia diventato obsoleto dopo essere rimasto inattivo per troppo tempo.

Se è così, ci sono due modi per farlo:

  1. Cattura le eccezioni di timeout del socket e la tua richiesta immediata dovrebbe essere in grado di accedere a un nuovo pool di connessioni. (questo è se l'opzione di riconnessione automatica nel tuo oggetto di connessione è lasciata su true, che è l'impostazione predefinita.)

  2. Utilizza un keep-alive personalizzato, per eseguire periodicamente il ping del server mongod utilizzando lo stesso pool di connessioni, in modo che il pool rimanga aggiornato.

L'opzione 1 è facile da implementare, ma il timeout del socket predefinito è di circa 30 secondi, il che è piuttosto eccessivo. Puoi modificare questa impostazione come richiesto.

L'opzione 2 è un po' un trucco, che coinvolge il threading.