Resumen
El mensaje de error que está viendo sucederá si se cumplen las dos condiciones siguientes:
- Los trabajos cron no finalizan (error) o tardan más de 4 minutos en finalizar;
- Invocas cron con más frecuencia que cada 4 minutos (según la configuración de tu crontab, no la configuración en Drupal)
Por lo tanto, este mensaje de error es un síntoma de una tarea cron que falla o tarda demasiado en ejecutarse. (Nota: me doy cuenta de que ya ha encontrado al culpable, pero quería agregar una respuesta para las personas que encuentran esta página a través de búsquedas, como lo hice)
Antecedentes
Lo primero que hay que entender es cómo se ejecutan las tareas cron de Drupal. El cron de Drupal se invoca a intervalos regulares, ya sea a través de un trabajo cron en su servidor o después de cada carga de página si usa el cron del pobre, que es el valor predeterminado de Drupal.
Sin embargo, las tareas cron no se ejecutan necesariamente cada vez que se invoca cron: hay una configuración en Drupal (el valor predeterminado es 3 horas) que dice con qué frecuencia se deben ejecutar las tareas cron. Pero este retraso de 3 horas solo se aplica si las tareas cron han terminado con éxito.
En Drupal 7, cron utiliza los mecanismos de bloqueo de Drupal , que proporcionan un sistema cooperativo de bloqueo de asesoramiento. Una de las características de este sistema de bloqueo es que los bloqueos caducan después de un cierto tiempo. En el caso de cron, caduca después de 4 minutos, por lo que si su cron se invoca cada 3 minutos y el trabajo cron anterior no había terminado en ese momento (se bloqueó o fue muy lento), de hecho obtendría este mensaje de error .
El hecho de que configure el cron para que sea cada 12 horas no hace la diferencia, ya que la tarea cron de Drupal está fallando / tarda demasiado, Drupal asume que no se ha ejecutado, por lo que intenta ejecutarlo nuevamente tan pronto como se invoque cron. El retraso de doce horas solo se aplica a ejecuciones cron exitosas.
La variable de semáforo cron ya no existe en Drupal 7, esto era para una versión anterior de Drupal. En Drupal 7 no hay una manera confiable de liberar manualmente un bloqueo, porque el backend de bloqueo puede cambiar, sin embargo, si está utilizando el mecanismo de bloqueo central, puede liberar bloqueos cron editando la base de datos:
DELETE FROM semaphore WHERE name = 'cron';
Pero al hacer esto, solo corregirá los síntomas: el problema que debe abordarse es por qué cron falla / tarda tanto en ejecutarse.