Ir al contenido

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.

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.

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.

  • 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_automations y primocrm_queue_health_check esté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.

Dos pasos: desactivar el pseudocron de WordPress y luego agregar un cron real que se ejecute cada minuto.

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.

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>&1

Binario de PHP (también excelente con acceso por terminal):

* * * * * php /path/to/wordpress/wp-cron.php >/dev/null 2>&1

cPanel: 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_cron

Regí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.

  • 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_CRON esté 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.