Pregunta sobre Product Feed PRO for WooCommerce de Wordpress:

Cron deja de funcionar cuando se acaba la vida

Un usuario preguntó 👇

Hola,

Instalé el plugin y funcionó bien durante unos días. Ahora me doy cuenta de que no se ha actualizado durante varios días y recibo un error que no encontré antes en New Relic, que está relacionado con un «error al enviar el paquete QUERY».

Otro problema que descubrí es que algunos crons (por ejemplo, cancelar pedidos impagos) dejan de funcionar aleatoriamente, cuando también ocurre este error.

Tengo 45.000 productos y una RAM de servidor de 16 GB, por lo que no creo que ese sea el problema. PHP 7.3, 6 núcleos y según New Relic, respuesta de 500ms, por lo que no implica mucho tráfico. Tengo un límite de ejecución de PHP de 1200 segundos y un límite de memoria de PHP de 4096 MB.

Agradezco su ayuda para resolver esto, gracias.

Santiago

(@evavangelooven)

Hace 1 año, 5 meses

Hola svaldesm,

Gracias por contactarnos.

Hay muchos 45.000 productos, sobre todo si esos 45.000 tienen variables que también tienen variantes. Lo que estábamos viendo antes no es el error «error al enviar el paquete QUERY» a cualquier otro usuario, así que investigamos un poco en línea y sugieren que hay un problema de recursos (memoria, tiempo de espera, etc.) en el futuro. Lo extraño es que mencionas que ha estado funcionando bien durante al menos unos días, entonces, ¿qué ha cambiado en los últimos días que puede haber causado que esto suceda repentinamente? ¿Ha instalado otros plugins con muchos recursos o ha realizado cambios en la configuración del feed?

Mejor, Eva

Lanzador de hilos

(@svaldesm)

Hace 1 año, 5 meses

Hola Eva, gracias por tu rápida respuesta.

¿Cuántos productos puede admitir este plugin? No tenemos cambios, por lo que solo los productos (y probablemente serán filtrados por “en stock”, en cuyo caso solo mostrará 26,0000).

No cambiamos nada junto a eso. ¿Hay más clientes que utilizan su plugin para tantos productos? ¿Esto se hace por escalabilidad?

En cuanto al error, estamos depurando más, pero parece estar relacionado con el plugin.

Gracias

Lanzador de hilos

(@svaldesm)

Hace 1 año, 5 meses

Ejecutamos el cron a mano y no hay nada de malo en ello. ¿El flujo de trabajo es el mismo si se extrae manualmente en lugar de automáticamente desde el cron?

Veo que el cron en sí no está programado para una actualización nuevamente. Encendí / apagué el plugin, encendí / apagué la alimentación, la configuración y nada lo guardan.

Otra cosa extraña es que, en la página de Configuración del plugin, dice que WP-Cron está deshabilitado, pero sé que está habilitado en WP-Config y que otros programas cron están funcionando.

¿Alguna pregunta conocida con esto también?

Gracias

Santiago

Esta respuesta fue modificada hace 1 año, 5 meses.

(@evavangelooven)

Hace 1 año, 5 meses

Hola svaldesm,

El plugin está diseñado para que pueda manejar una gran cantidad de productos. Por eso, por ejemplo, procesó los productos en pequeños lotes. Cada vez que un lote termina de procesar un nuevo evento cron, el siguiente lote se crea 2 segundos después. Todo esto funciona bien cuando WP-cron está habilitado, pero crea problemas al ejecutar WP-cron desde su cron unix porque los eventos cron permanecen inactivos hasta que su cron unix se ejecuta nuevamente.

Por el bien del argumento, se supone que su cron de Unix se ejecuta cada 5 minutos y está ejecutando una versión PHP de 7 o superior:

45.000 / 750 (tamaño de lote en su caso) = 60 lotes requeridos. En el mejor de los casos, ya costaría 300 minutos solo para hacer todos los lotes, pero como los productos deben alimentarse, esto podría pasar fácilmente de 450 a 600 minutos antes de que se procese el alimento. Es por eso que, mientras funciona, desaconseja deshabilitar WP-cron en wp-config.

Algunos de nuestros usuarios tienen más de 100.000 productos y WP-cron está habilitado. Funciona para ellos. Sin embargo, esto solo funciona cuando tiene hardware de servidor serio.

Mejor, Eva

(@evavangelooven)

Hace 1 año, 5 meses

Hola,

Suponiendo que el problema esté resuelto y que nuestro apoyo ya no sea necesario, ahora voy a cerrar este tema por razones internas.

No dude en volver a ponerse en contacto con nosotros siempre que necesite nuestra ayuda o si tiene alguna pregunta.

Que tengas un gran fin de semana, Eva

Lanzador de hilos

(@svaldesm)

Hace 1 año, 5 meses

Hola eva

Gracias por su respuesta. Aquí hay dos temas que me gustaría discutir:

1. Uso del servidor Cron en lugar de WP-Cron: se nos ha aconsejado muchas veces que usemos el servidor cron para obtener algunos beneficios en términos de rendimiento del servidor. Si la hora del servidor se ajusta en 1 o 2 minutos, digamos, ¿seguirá funcionando? ¿Podría dar más detalles sobre cómo funciona el plugin para crear lotes?

2. El plugin rompe algunas funcionalidades de crons y no se actualiza: cuando actualizamos el plugin manualmente, funciona. Pero las actualizaciones programadas no funcionan (Redis no funciona en este servidor). De hecho, lo peor es que otras programaciones cron sufren debido a esto, probablemente porque algo le sucede a esta tarea pendiente. Por ejemplo, woocommerce_cancel_unpaid_orders solo se programa después de la última ejecución. Simplemente se ejecuta al mismo tiempo que el feed debe actualizarse, sucede algo y ya no funciona. Hemos desactivado el aditivo para piensos y parece funcionar. Este es un servidor de 16GB con tráfico regular, funciona muy rápido, por lo que no está relacionado con el hardware. Tal vez se esté rompiendo un problema de configuración, pero ahora no hay mucho en los registros. ¿Alguna pista sobre esto?

¡Muchos gracias!

(@evavangelooven)

Hace 1 año, 5 meses

Hola svaldesm,

El plugin procesa los productos en lotes porque cuando procesa todos los productos a la vez e intenta escribirlos en todos los feeds a la vez, la mayoría de los servidores se quedan sin memoria o se establece el límite ama.

Los tamaños de lote de productos predeterminados son los siguientes:

Versión PHP <5.6 = méid baisc de 50 táirge ag an am céanna; Leagan PHP 5.6 = méid baisc de 200 táirge ag an am céanna; Leagan PHP> 7 y la cantidad de productos en su sitio web es menos de 50000 = 750 productos al mismo tiempo Versión PHP> 7 y la cantidad de productos en su sitio web es más de 50000 = 2500 productos al mismo tiempo

Al crear alimento o renovarlo manualmente, procesa el primer lote. Cuando un lote no es suficiente para procesar todos los productos, el plugin corrige un evento cron después de completar el lote para grabar el siguiente lote de productos. Y así sucesivamente hasta que procesó todos los productos.

Este evento cron se enciende unos segundos después de que se completa un lote anterior. Ahora, cuando activa los eventos cron con un cron externo, el evento permanece inactivo hasta que se activa. Entonces, pero con la capacidad WP-cron, solo hay unos pocos segundos entre cada lote, en su caso, depende del intervalo que establezca para el cron externo.

¿Espero que esto tenga sentido?

Mejor, Eva

Lanzador de hilos

(@svaldesm)

Hace 1 año, 5 meses

Hola eva

Tiene sentido y el punto 1 es claro para mí.

Lo que no tengo muy claro es el punto 2. Como escribí anteriormente, cuando el plugin se ejecuta «automáticamente», rompe otras tareas cron de alguna manera. ¿Será que le molesta el uso de RAM o algo con la configuración del servidor? Porque el feed no está actualizado. Recuerde que esta es una máquina muy grande y maneja una gran cantidad de tráfico perfectamente, por lo que no es un problema de hardware (sino quizás uno de configuración).

¿Cómo podemos depurar más esto? ¿Existe alguna configuración conocida (memoria php, RAM, etc.) que provoque que el plugin se «bloquee» mientras se actualiza automáticamente? De alguna manera contradice algo más. WP-Cron y Redis también están habilitados en este servidor y la fuente se actualiza cuando se hace manualmente.

Gracias por tu ayuda,

(@evavangelooven)

Hace 1 año, 5 meses

Hola svaldesm,

Con respecto al punto dos: no hemos informado a ningún otro usuario de que nuestro plugin interrumpe otras tareas cron, así que creo que tienes derecho a asumir que está en conflicto con otra cosa, quizás un plugin como Redis b ‘.

Pasamos mucho tiempo en el pasado tratando de hacer que nuestro plugin fuera compatible con el almacenamiento en caché de objetos de Redis, pero causó un comportamiento tan inesperado que decidimos renunciar a él. ¿Intentó ejecutar nuestro plugin con Redis desactivado y, de ser así, persistió el problema?

Mejor Eva

Lanzador de hilos

(@svaldesm)

Hace 1 año, 5 meses

Hola eva

Lo siento, lo escribí mal. Redis está deshabilitado en este sitio.

Entonces no estoy seguro de cómo depurar el comportamiento del plugin y por qué se rompe. Una bandera amarilla (posiblemente) es que WP-Cron está deshabilitado de acuerdo con la configuración del plugin. No estoy seguro de por qué sucede eso, ya que podemos ver Cron Events con WP Crontrol (de lo contrario, sería imposible si el plugin estaba deshabilitado).

Si conoce formas de depurar o qué buscar en los registros, sería muy útil (¿hay registros en el plugin?)

Muchísimas gracias,

(@evavangelooven)

Hace 1 año, 5 meses

Hola svaldesm,

¿Podría intentar deshabilitar y volver a habilitar nuestro plugin? Debería restablecer el evento cron que restablece las actualizaciones automáticas. Esto debería restar valor al mensaje de que WP-cron está deshabilitado.

Cuando nuestro plugin crea errores o advertencias, estos se pueden encontrar en el debug.log de WordPress (en el directorio wp-content).

Mejor Eva

Lanzador de hilos

(@svaldesm)

Hace 1 año, 5 meses

Hola eva

De hecho, reprogramó las coronas. Esperaré unos días para que el feed no se actualice para ver si es el feed o algo más lo que rompe el cron de Cance_unpaid_orders. En caso de que algo más lo rompa, volveré a activar las actualizaciones automáticas de alimentación y veré si esa es la causa del problema.

Gracias por su ayuda y lo mantendré informado para un diagnóstico adicional.

Lanzador de hilos

(@svaldesm)

Hace 1 año, 5 meses

Hola eva

Después de encender / apagar el tapón, las coronas actuaron nuevamente. Pero cuando se esperaba que el feed se actualizara, nunca lo hizo y ahora las coronas para el plugin se han ido. ¿Alguna idea de cómo depurar esto? WP-Cron está activo, Redis está desactivado, tenemos muchos visitantes, por lo que Cron se ejecuta todo el tiempo.

Gracias,

(@evavangelooven)

Hace 1 año, 5 meses

Hola svaldesm,

¿Podría ponerse en contacto con [email protected]? Nosotros nos haremos cargo a partir de ahora.

Mejor, Eva

¿Solucionó tu problema??

0 / 0

Deja una respuesta 0

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *