Leistung und Monitoring

WP-Cron durch einen Cron-Job des Hostings ersetzen

Geprüft am 4 Min. Lesezeit WordPress Performance Cron

WordPress verwendet WP-Cron, um ausstehende Ereignisse auszuführen, etwa geplante Beiträge und Aufgaben von Plugins. Üblicherweise lösen Besuche die Ausführung aus. Das vereinfacht die Installation, aber eine Website mit wenig Verkehr kann Aufgaben verspätet ausführen, und eine sehr aktive Website bevorzugt eventuell einen Auslöser auf Systemebene.

Es geht nicht darum, die Aufgaben zu entfernen, sondern darum, wie sie gestartet werden. Wenn Sie WP-Cron ohne funktionierenden Ersatz deaktivieren, bleiben womöglich Beiträge, E-Mails oder Vorgänge des Shops liegen.

Option mit Softaculous

Suchen Sie im WordPress Manager by Softaculous die richtige Installation und die Option WordPress Cron (wp-cron.php). Softaculous bietet an, den Auslöser durch Besuche zu deaktivieren und durch eine Systemaufgabe zu ersetzen.

Prüfen Sie anschließend Cron-Jobs in cPanel: ob die Aufgabe angelegt wurde, welche Installation sie ausführt und wie oft. Der von Softaculous dokumentierte Modus kann stündlich sein; gehen Sie nicht davon aus, dass er für Aufgaben genügt, die alle paar Minuten laufen müssen. Fügen Sie keine weitere gleichwertige Aufgabe hinzu, wenn bereits eine existiert.

Lesen Sie im offiziellen Softaculous-Manager nach, welche Funktionen Ihre Version hat, und testen Sie ein geplantes Ereignis, bevor Sie die Umstellung als erledigt betrachten.

Manuelle Einrichtung

Bewahren Sie eine Kopie von wp-config.php auf und prüfen Sie die vorhandenen Aufgaben. Legen Sie über die Cron-Jobs von cPanel eine Aufgabe mit der Häufigkeit an, die die Anwendung benötigt. Alle fünf Minuten kann ein Ausgangspunkt sein, garantiert aber weder sekundengenaue Ausführung noch, dass eine lange Aufgabe vor der nächsten beendet ist.

Wenn Sie eine HTTPS-Anfrage verwenden, testen Sie diesen Befehl zuerst mit der tatsächlichen Domain und dem tatsächlichen Pfad von WordPress:

curl --fail --silent --show-error --max-time 60 --output /dev/null 'https://ihredomain.com/wp-cron.php?doing_wp_cron'

Prüfen Sie, dass keine Weiterleitung, Anmeldeseite, Firewall-Challenge oder Cache-Kopie antwortet. Der Befehl folgt keinen Weiterleitungen: Verwenden Sie die richtige End-URL. Das Zeitlimit des Clients beweist nicht, dass die Arbeit auf dem Server beendet wurde.

Wenn WordPress in einem Unterverzeichnis liegt, nehmen Sie es mit auf. Im cPanel-Formular stehen die Datums- und Zeitfelder getrennt vom Befehl; fügen Sie dort keine vollständige Crontab-Zeile ein, wenn nur der Befehl verlangt wird.

Sobald der Ersatz getestet und geplant ist, fügen Sie in wp-config.php vor dem Laden von WordPress hinzu:

define('DISABLE_WP_CRON', true);

Wenn die Konstante bereits existiert, ändern Sie ihren Wert, ohne sie zu duplizieren. Das Verfahren von WordPress erklärt diesen Wechsel des Auslösers.

Aufgaben prüfen und Doppelungen vermeiden

Prüfen Sie einen geplanten Testbeitrag und die wichtigen Ereignisse Ihrer Plugins. Kontrollieren Sie verspätete Aufgaben und Fehler. Eine korrekte HTTP-Antwort garantiert nicht, dass alle Callbacks fehlerfrei abgeschlossen wurden.

Wenn Sie Ereignisse lieber über WP-CLI ausführen, klären Sie Pfad, PHP-Version, Website-Kontext und Umgang mit Parallelität mit dem Entwickler. Betreiben Sie nicht gleichzeitig mehrere gleichwertige Aufgaben über Softaculous, HTTP und WP-CLI.

Wenn etwas fehlschlägt, stellen Sie den vorherigen Auslöser wieder her und entfernen oder pausieren Sie den nicht funktionierenden Ersatz. Lassen Sie DISABLE_WP_CRON während der Untersuchung nicht aktiv, ohne dass ein anderer Weg die Ereignisse ausführt. Prüfen Sie in einer Multisite die Anforderungen jeder Website des Netzwerks.

Das könnte Ihnen auch helfen

Stimmt etwas nicht oder hat sich etwas geändert? Erzählen Sie es uns, und wir prüfen es.