Zusammenfassung
Die angezeigte Fehlermeldung würde auftreten, wenn die folgenden beiden Bedingungen erfüllt sind:
- Ihre Cron-Jobs werden nicht beendet (Fehler) oder es dauert länger als 4 Minuten, bis sie beendet sind.
- Sie rufen cron öfter als alle 4 Minuten auf (entsprechend Ihrer crontab-Einstellung, nicht der Einstellung in Drupal)
Diese Fehlermeldung ist daher ein Symptom für einen Cron-Task, dessen Ausführung entweder fehlschlägt oder zu lange dauert. (Hinweis: Mir ist klar, dass Sie den Täter bereits gefunden haben, aber ich wollte eine Antwort für Personen hinzufügen, die diese Seite wie ich über Suchanfragen finden.)
Hintergrund
Das Erste, was Sie verstehen müssen, ist, wie Drupal-Cron-Tasks ausgeführt werden. Der Drupal-Cron wird in regelmäßigen Abständen aufgerufen - entweder über einen Cron-Job auf Ihrem Server oder nach jedem Laden der Seite, wenn Sie den Cron des armen Mannes verwenden, der der Standard von Drupal ist.
Die Cron-Tasks werden jedoch nicht unbedingt jedes Mal ausgeführt, wenn Cron aufgerufen wird. In Drupal gibt es eine Einstellung (Standard: 3 Stunden), die angibt, wie oft Cron-Tasks ausgeführt werden sollen. Diese Verzögerung von 3 Stunden gilt jedoch nur, wenn die Cron-Aufgaben erfolgreich abgeschlossen wurden.
In Drupal 7 verwendet cron die Sperrmechanismen von Drupal , die ein kooperatives, beratendes Sperrsystem bieten. Eines der Merkmale dieses Schließsystems ist, dass Schlösser nach einer bestimmten Zeit ablaufen. Im Falle von Cron läuft es nach 4 Minuten ab. Wenn Ihr Cron also alle 3 Minuten aufgerufen wird und der vorherige Cron-Job zu diesem Zeitpunkt noch nicht beendet wurde (entweder abgestürzt oder sehr langsam), wird in der Tat diese Fehlermeldung angezeigt .
Die Tatsache, dass Sie den Cron auf alle 12 Stunden einstellen, spielt keine Rolle. Da der Drupal-Cron-Task fehlschlägt / zu lange dauert, geht Drupal davon aus, dass er nicht ausgeführt wurde, und versucht, ihn erneut auszuführen, sobald Cron aufgerufen wird. Die zwölfstündige Verspätung gilt nur für erfolgreiche Cron-Läufe.
Die Cron-Semaphor-Variable existiert in Drupal 7 nicht mehr - dies war für eine ältere Version von Drupal. In Drupal 7 gibt es keine zuverlässige Möglichkeit, eine Sperre manuell aufzuheben, da sich das Sperr-Backend möglicherweise ändert. Wenn Sie jedoch den Kernsperrmechanismus verwenden, können Sie Cron-Sperren aufheben, indem Sie die Datenbank bearbeiten:
DELETE FROM semaphore WHERE name = 'cron';
Auf diese Weise können Sie jedoch nur die Symptome beheben. Das Problem, das behoben werden muss, besteht darin, warum Cron ausfällt bzw. so lange dauert.