sql >> Base de Datos >  >> NoSQL >> MongoDB

¿Por qué PyMongo lanza AutoReconnect?

Estás malinterpretando AutoReconnect. Se genera cuando el controlador intenta comunicarse con el servidor (para enviar un comando u otra operación) y ocurre una falla en la red o un problema similar. El nombre de la excepción pretende comunicar que usted no tiene que crear una nueva instancia de MongoClient, el cliente existente intentará volver a conectarse automáticamente cuando su aplicación intente la siguiente operación. Si ocurre el mismo problema, AutoReconnect se genera nuevamente.

Sospecho que la razón por la que está viendo el tiempo de espera de los sockets (y el aumento de AutoReconnect) es que hay un equilibrador de carga entre el servidor y su aplicación que cierra las conexiones después de un período de inactividad. Por ejemplo, esto aparentemente sucede en la plataforma Azure de Microsoft después de 13 minutos sin actividad en un socket. Es posible que pueda solucionar esto utilizando la opción socketKeepAlive, agregada en PyMongo 2.8. Tenga en cuenta que también deberá establecer el intervalo de actividad en su servidor de aplicaciones en un valor adecuado (el valor predeterminado en Linux es de 2 horas). Consulte aquí para obtener más información.