Sommario
Il messaggio di errore che visualizzerai si verificherebbe se si verificano le due seguenti condizioni:
- I lavori cron non terminano (errore) o impiegano più di 4 minuti per terminare;
- Richiami cron più spesso di ogni 4 minuti (in base all'impostazione crontab, non all'impostazione in Drupal)
Questo messaggio di errore è quindi un sintomo di attività cron che non riescono o richiedono troppo tempo per essere eseguite. (Nota: mi rendo conto che hai già trovato il colpevole, ma volevo aggiungere una risposta per le persone che trovano questa pagina tramite le ricerche, come ho fatto io)
sfondo
La prima cosa da capire è come vengono eseguite le attività cron di Drupal. Il cron di Drupal viene invocato a intervalli regolari - tramite un processo cron sul server o dopo ogni caricamento della pagina se si utilizza il cron del povero che è l'impostazione predefinita di Drupal.
Tuttavia, le attività cron non vengono necessariamente eseguite ogni volta che viene richiamato cron: in Drupal è presente un'impostazione (l'impostazione predefinita è 3 ore) che indica la frequenza con cui eseguire le attività cron. Ma questo ritardo di 3 ore si applica solo se le attività cron sono state completate correttamente.
In Drupal 7, cron utilizza i meccanismi di blocco di Drupal , che fornisce un sistema di blocco cooperativo e consultivo. Una delle caratteristiche di questo sistema di blocco è che i blocchi scadono dopo un certo tempo. Nel caso di cron, scade dopo 4 minuti - quindi se il tuo cron viene invocato ogni 3 minuti e il precedente processo cron non era terminato in quel momento (o si è bloccato o era molto lento), otterrai effettivamente questo messaggio di errore .
Il fatto che imposti cron per essere ogni 12 ore non fa differenza - poiché l'attività cron di Drupal non riesce / impiega troppo tempo, Drupal presume che non sia stato eseguito, quindi prova a eseguirlo di nuovo non appena viene richiamato cron. Il ritardo di dodici ore si applica solo a cron run riuscite.
La variabile semaforo cron non esiste più in Drupal 7 - questo era per una versione precedente di Drupal. In Drupal 7 non esiste un modo affidabile per rilasciare manualmente un blocco, perché il backend del blocco potrebbe cambiare - tuttavia se si utilizza il meccanismo di blocco del nucleo, è possibile rilasciare i blocchi cron modificando il database:
DELETE FROM semaphore WHERE name = 'cron';
Ma così facendo risolveresti solo i sintomi: il problema che deve essere risolto è il motivo per cui cron non riesce / impiega così tanto tempo per funzionare.