El uso de WP All Import, el Importador de WordPress, y plugins similares para importar archivos XML, CSV, y WXR e imágenes es una tarea común para los desarrolladores y sitios con contenido que cambia frecuentemente. Sin embargo, también es común que haya tiempos de inactividad (timeouts) y problemas con el desempeño del sitio mientras se están procesando estas importaciones.

En este articulo, discutiremos los pasos que puede tomar para superar estos procesos de importación difíciles.

Por favor tenga en cuenta que no podemos garantizar que cada proceso de importación funcione de forma correcta en nuestra plataforma. Si la importación no funciona de forma adecuada en Kinsta, le recomendamos llevar a cabo la importación en un entorno de staging local e importar la base de datos actualizada o la tabla de la base de datos de su sitio web.

¿Por Qué las Importaciones Causan Timeouts y Problemas de Desempeño?

Hay dos tipos de Timeouts que los grandes procesos de importación, típicamente se encuentran:

  • Los timeouts de PHP ocurren si un solo proceso de PHP funciona por más tiempo que el tiempo de ejecución o tiempo de input máximo establecido en la configuración de PHP. Cuando esto sucede, aparecerá un error 502.
  • Los timeouts de HTTP ocurren cuando la conexión entre su navegador y el servidor de la red se mantienen abiertos por mucho tiempo. Cuando esto sucede, parecerá un error 504.

Es común que el desempeño de un sitio web sea más lento cuando una gran importación está sucediendo. Esto es porque PHP y MySQL están ocupados lidiando con procesos de importación. Esto causa que el tráfico regular al sitio tenga que esperar hasta que PHP y MySQL estén disponibles para generar la página solicitada.

Lidiando con Timeouts de PHP

Para los sitios alojados en Kinsta, el PHP max_execution_time y max_input_time están configurados a 300 segundos por defecto. Los valores máximos de tiempo de espera de PHP disponibles en nuestra plataforma se basan en tu plan de alojamiento actual.

Si te encuentras con tiempos de espera de PHP, te recomendamos que trabajes con un desarrollador para resolver el problema. Por ejemplo, en lugar de ejecutar un proceso de importación a través de una larga petición PHP, sería mejor ejecutar la importación directamente en el contenedor utilizando WP-CLI o un script PHP o Bash local.

Lidiando con Timeouts de HTTP

Los timeouts de HTTP ocurren después de 60 segundos para sitios alojados en Kinsta. Debido al diseño de nuestra infraestructura, no podemos incrementar la duración del timeout de HTTP.

Si usted experimenta un timeout de HTTP, hay dos medidas que debería tomar para resolver el problema:

  • Si el proceso se termina mientras el archivo de importación se estaba subiendo, cambie a una conexión de internet más rápida e intente de nuevo.
  • Si tiene un plan con acceso SSH (Business 1 en adelante) y está usando una herramienta con soporte para WP-CLI, como el plugin de importación de WordPress, usted puede importarlo de forma directa en el servidor y saltarse la conexión HTTP completamente.

Por favor tome en cuenta que activar una importación vía SSH es un cambio al contenido de su sitio web, esto no forma parte de las tareas realizadas por nuestro equipo de soporte. Para poder correr una importación a través de SSH, usted necesitará un plan de Business 1 o superior. Si usted no está familiarizado con SSH, tendrá que aprender a usar esta poderosa herramienta o trabajar con un desarrollador para procesar la importación vía SSH.

Lidiando con los Problemas de Desempeño del Sitio Web

Si el proceso de importación está funcionando exitosamente, pero su sitio web está desempeñándose pobremente durante el proceso, tiene dos opciones:

  • Planear la actividad de proceso para que suceda durante un tiempo de tráfico bajo para minimizar el impacto que tendrán sus visitantes al entrar en el sitio.
  • Actualizar el plan con más PHP workers. Si los problemas de desempeño están sucediendo debido a que PHP no ha podido manejar más peticiones, mejorar temporalmente a un plan con más PHP workers podría significar que PHP tiene más capacidad para lidiar con tráfico al sitio y con la importación.
  • Cambiar de plan no te ayudará si estás tratando de ejecutar una importación en un sitio de staging. Nuestro entorno de staging tiene un número constante de PHP workers y no se verá afectado por las actualizaciones de plan.

Hacer un upgrade del plan para obtener acceso a más PHP workers no ayudará en todos los casos. Si su sitio web, funciona lentamente porque la base de datos (MySQL) está ocupada insertando contenido a la base de datos, añadir PHP workers adicionales no acelerará el desempeño de su sitio web.

Obteniendo Ayuda

Si usó todas las sugerencias de este articulo y todavía se encuentra con problemas, y preferiría recibir apoyo, entonces el siguiente paso sería ponerse en contacto con nuestro equipo de soporte. Sin embargo, antes de iniciar una conversación con nuestro equipo, por favor consiga lo máximo posible de información acerca de su sitio.

  • Empiece la importación y mida cuánto tiempo toma para que los procesos empiecen a fallar. SI el proceso falla después de 1 minuto, es posible que se esté encontrando con timeouts de HTTP. Si falla después de 5 minutos, es probable que sea un timeout de PHP. Si falla en algún otro punto, es probable que se esté encontrando con otro límite o error, y quizás no sea un timeout.
  • Cheque los registros de errores en el momento que la importación falló, y revise si un error fue registrado en el momento de la falla.
  • Tome una foto del mensaje de error o página de error que está observando.
  • Escriba una descripción concisa del tipo de archivo que está intentando importar, cómo el archivo fue creado, qué contiene, las herramientas usadas para crear el archivo y para hacer la importación, y el error que está experimentando.

Una vez que haya recolectado toda esta información, abra un ticket de soporte. Sin embargo, por favor tenga en cuenta de que no podremos garantizarle que somos capaces de asegurar que todas sus importaciones corran de forma exitosa.

Próximos Pasos – Flujo de Trabajo del Desarrollo Local

Si no es posible correr la importación en el entorno de Kinsta, el siguiente paso sería desarrollar un nuevo flujo de trabajo para el proceso de importación donde la importación es ejecutada en un entorno de desarrollo local. Por favor tenga en cuenta, de que un desarrollador necesitará estar involucrado en este proceso, para asegurar que ningún dato se pierda y que la base de datos de su sitio no esté dañada.

En general, el proceso sería configurar una copia de tu sitio en un entorno de desarrollo local – puedes usar DevKinsta – donde puedes controlar todos los límites de tiempo de espera. Luego complete la importación en ese entorno local. Una vez que la importación este completa, exporte una copia de la base de datos o las tablas de la base de datos actualizadas de su entorno local. Luego cree un backup de su sitio web en línea, quite la base de datos (o tablas afectadas) de su sitio web en línea, e importe la base de datos o tablas exportadas desde su entorno local.