Cron y Procesamiento en Segundo Plano
PrimoCRM realiza todo su trabajo pesado en segundo plano: el envío de campañas, las secuencias de correos y los pasos de automatización son procesados por trabajadores programados, nunca en la solicitud de la página. Esos trabajadores se ejecutan en el cron de WordPress, por lo que un cron confiable es lo que mantiene tus correos saliendo a tiempo. Esta página explica cómo funciona y cómo asegurarte de que sea sólido.
Cómo utiliza PrimoCRM el cron
Sección titulada «Cómo utiliza PrimoCRM el cron»PrimoCRM registra dos horarios personalizados y un pequeño conjunto de trabajadores en segundo plano:
| Trabajador | Se ejecuta | Trabajo |
|---|---|---|
| Envío de correos de campaña | Bajo demanda (solo mientras una campaña tenga correos pendientes) | Entrega una campaña en lotes limitados |
| Procesamiento de secuencias | Cada minuto | Envía los correos de secuencia programados |
| Procesamiento de automatizaciones | Cada minuto | Avanza a los contactos a través de los pasos de automatización |
| Verificación de salud de la cola | Cada 5 minutos | Recupera correos atascados y vuelve a activar campañas detenidas |
Cada trabajador toma un lote de trabajo, respeta un presupuesto de tiempo para no superar nunca los límites de su servidor y se vuelve a programar. La verificación de salud de 5 minutos es una red de seguridad: si un envío se detiene, lo empuja de nuevo en movimiento en el siguiente ciclo.
Por qué es importante un cron confiable
Sección titulada «Por qué es importante un cron confiable»WordPress incluye un pseudocron que solo se activa cuando alguien visita el sitio. En un sitio con mucho tráfico esto está bien. En un sitio con poco tráfico, pueden pasar horas sin visitas, por lo que los envíos programados no se ejecutan hasta que llega el siguiente visitante. El síntoma es una campaña que se queda en “enviando” y se distribuye lentamente o no se envía.
La solución es reemplazar el pseudocron activado por visitantes con un cron real que se ejecute en un horario fijo, idealmente cada minuto.
Verificar si el cron está funcionando
Sección titulada «Verificar si el cron está funcionando»- Abre PrimoCRM, luego Ajustes y busca el estado del sistema o del cron, el cual informa si los trabajadores están programados y cuándo se ejecutaron por última vez.
- O instala un plugin auxiliar como WP Crontrol y confirma que los eventos
primocrm_process_sequences,primocrm_process_automationsyprimocrm_queue_health_checkestén presentes y se estén ejecutando.
Si una campaña está atascada y tu sitio recibe poco tráfico, el cron es casi siempre la causa.
Configurar un cron real (recomendado)
Sección titulada «Configurar un cron real (recomendado)»Dos pasos: desactivar el pseudocron de WordPress y luego agregar un cron real que se ejecute cada minuto.
1. Desactivar el pseudocron
Sección titulada «1. Desactivar el pseudocron»Agrega esto a wp-config.php, encima de la línea “¡Eso es todo, deja de editar!”:
define( 'DISABLE_WP_CRON', true );Esto evita que WordPress active el cron al cargar las páginas, por lo que tu cron real es el único activador.
2. Agregar un cron real cada minuto
Sección titulada «2. Agregar un cron real cada minuto»Elige la opción que corresponda a tu alojamiento.
WP-CLI (la mejor opción, si tienes acceso por terminal):
* * * * * cd /path/to/wordpress && wp cron event run --due-now >/dev/null 2>&1Binario de PHP (también excelente con acceso por terminal):
* * * * * php /path/to/wordpress/wp-cron.php >/dev/null 2>&1cPanel: abre Tareas Cron, configura el intervalo para que se ejecute cada minuto (* * * * *)
y utiliza uno de los comandos anteriores con la ruta completa a tu sitio.
¿Sin acceso por terminal (alojamiento compartido)? Utiliza un servicio de cron remoto gratuito como cron-job.org para llamar a la URL de tu cron por HTTP cada minuto:
https://yoursite.com/wp-cron.php?doing_wp_cronRegístrate en el servicio, agrega esa URL, configura el intervalo en 1 minuto y guarda. Esto llama al cron de WordPress desde el exterior en un horario fijo.
Solución de problemas
Sección titulada «Solución de problemas»- Una campaña se queda atascada en “enviando”. Casi siempre se debe al cron. Confirma que un cron real se esté ejecutando cada minuto y que
DISABLE_WP_CRONesté configurado. La verificación de salud de 5 minutos reanudará el envío una vez que el cron se ejecute. - Las automatizaciones o secuencias se ejecutan tarde. El intervalo de tu cron es demasiado largo o el pseudocron está esperando visitantes. Cambia a un cron real de 1 minuto.
- No se envía nada. Aparte del cron, confirma que tu método de envío esté configurado y que llegue un correo de prueba. El cron controla cuándo se ejecuta el trabajo; el sistema de correo controla si se entrega.
- Límites de CPU del alojamiento compartido. Los trabajadores tienen un presupuesto de tiempo y se reducen bajo carga, por lo que son seguros en alojamientos compartidos. Si tu servidor sigue quejándose, un intervalo ligeramente mayor (de 2 a 5 minutos) reduce la frecuencia a cambio de puntualidad.
Consulta también Requisitos para conocer los prerrequisitos de PHP y del servidor, y Envío y Capacidad de Entrega para todo lo relacionado con el sistema de correo.