2010-08-03 18 views
5

Estoy usando R para leer algunos datos de una base de datos MySQL usando el paquete RODBC. Los datos se procesan y algunos resultados se envían nuevamente a la base de datos. El problema es que el servidor cierra la conexión después de aproximadamente un minuto debido a la inactividad, que es el tiempo necesario para procesar los datos localmente. Es un servidor compartido, por lo que el host no aumentará el tiempo de espera.MySQL odbc timeout from R

creo que hay dos posibilidades de evitar esto 1) abrir una conexión antes de cada transacción de base de datos y cerrar inmediatamente después de 2) envía un pequeño comando 'ping' al servidor cada 30 segundos o más para dejar que el el servidor sabe que todavía estoy allí.

Puedo implementar el primero bastante fácil, pero parece bastante lento para abrir y cerrar constantemente las conexiones. ¿Alguien sabe un comando eficiente para el segundo? O una mejor manera en conjunto?

Respuesta

4

La primera solución es la que yo prefiero. Es realmente difícil hacer esto último con un único programa de subprocesos como R. Si R está ocupado ejecutando análisis, no hay forma de que maneje el ping. A menos que esté haciendo cientos de lecturas/escrituras, el método de abrir y cerrar la conexión no debe introducir una cantidad extrema de sobrecarga.

+0

Finalmente fui con el número 1, hay un gran número de personas o leen/escriben, pero supongo que 'es lo que es' – stotastic

Cuestiones relacionadas