Ich habe cron ausgeführt und die Ausführung abgebrochen. Jetzt bekomme ich diese Nachricht:
Es wird versucht, cron erneut auszuführen, während es bereits ausgeführt wird.
In Drupal 7 konnte ich die Variable cron_semaphore löschen .
Wie erreichen Sie dasselbe in Drupal 8?
drush php:eval '\Drupal::lock()->release("cron");'
Danke an Shawns Antwort ..
Schien zu helfen!
quelle
Für Drupal 8:
quelle
Ich bin auf diese Seite gekommen, als meine D7-Installation steckte. Ich habe es mit freigegeben
quelle
lock_release('cron')
die Cron-Sperre frei.Drupal 7 verwendet nicht mehr die Variable cron_semaphore , sondern eine Sperre. Siehe
drupal_cron_run()
insbesondere die folgenden Zeilen, die Teil dieser Funktion sind.Das Portieren dieser Leitungen auf Drupal 8 ist recht einfach, da Drupal 8 einen Dienst zum Erhalten und Freigeben einer Sperre bietet.
Der entsprechende Code ist in
Cron::run()
.Wenn Sie es auf einem Host entsperren müssen, auf dem Sie Drush nicht verwenden können, wie es mir passiert, um dasselbe von einem externen Skript aus zu erreichen, für das Bootstraps Drupal Code ähnlich dem folgenden erfordern würde.
Ich habe den Code von authorize.php angepasst . Ich habe die zum Ausführen des Skripts erforderliche Benutzerberechtigung geändert, die ich in das Verzeichnis mit der Datei authorize.php in der Datei cron_cleanup.php gestellt habe.
Wenn Sie Drush ausführen können, wird es einfacher. (Siehe @ dmans Antwort .)
quelle
Wenn Sie mit den vorgeschlagenen Schritten von oben nicht in Drupal 8 arbeiten können - verwenden Sie vielleicht etwas wie Redis und die Cron-Sperre ist dort gespeichert. In diesem Fall können Sie fortfahren mit:
quelle