WP-Cron-Übersicht

WP-Cron führt bestimmte Aufgaben für WordPress-basierte Websites aus. Der Name Cron kommt vom Unix-System für die Planung von Jobs, die von einmal pro Minute bis einmal pro Jahr reichen. Ob routinemäßige Wartung oder geplante Warnungen, jeder Befehl, der unter Unix ohne Benutzereingriff ausgeführt werden kann, kann als Cron-Task geplant werden.

WP-Cron ähnelt Cron, unterscheidet sich jedoch in einigen sehr wichtigen Punkten. Diese Funktion wurde ausschließlich für WordPress-Routineaufgaben entwickelt:

  • Nach neuen Versionen des WordPress-Kerns, der Themes und Plugins suchen
  • Spam bereinigen

Plugins und Themes können Aufgaben hinzufügen, die in regelmäßigen Abständen ausgeführt werden sollen. Wenn Sie beispielsweise ein Plugin haben, das Twitter nach Ihren Tweets durchsucht und diese dann in Kommentare einfügt, wird dies höchstwahrscheinlich mit einem WP-Cron-Job erledigt. WP-Cron eröffnet eine ganz neue Welt der Dinge, die eine WordPress-basierte Website tun kann.

Wie wird WP-Cron ausgelöst?

Der Hauptunterschied zwischen Cron und WP-Cron besteht darin, wie WP-Cron ausgelöst wird. Cron ist ein Systemprozess, der jede Minute ausgeführt wird und nach auszuführenden Aufgaben sucht. WP-Cron kann nur ausgeführt werden, wenn jemand die Website besucht, da es sich um ein webbasiertes System handelt. Wenn also jemand zu Ihrer WordPress-Site navigiert, überprüft WP-Cron, ob etwas getan werden muss. Dank der WordPress-Kernentwickler geschieht dies auf eine Weise, die die Leistung Ihrer Website nicht beeinträchtigt.

Probleme mit Websites mit geringem Datenverkehr

Bei WordPress-Websites mit geringem Datenverkehr können Aufgaben übersprungen werden, wenn diese Funktion von Besuchern ausgelöst wird. Wenn Personen Ihre Website nicht besuchen, kann WP-Cron nicht ausgeführt werden. Dies bedeutet nicht, dass Ihre Seite von früheren Jobs langsam sein wird, wenn jemand schließlich Ihre Website besucht. Unabhängig davon, wie viele Aufgaben WP-Cron ausführen muss, werden sie im Hintergrund ausgeführt, sodass die Leistung Ihrer Website nicht beeinträchtigt wird.

Probleme mit Websites mit hohem Datenverkehr

Wenn Ihre WordPress-Site mit hohem Datenverkehr betrieben wird, können Probleme mit WP-Cron auftreten. Die Hauptprobleme, die auftauchen, sind Rennbedingungen und lange laufende Prozesse.

  • Rennbedingung: Wenn mehr als ein Benutzer Ihre Website besucht und WP-Cron auslöst, um dieselbe Aufgabe auszuführen. WP-Cron arbeitet hart daran, Rennbedingungen zu beseitigen, aber sie können immer noch auftreten, insbesondere auf stark frequentierten Websites.
  • Lang andauernder Prozess: Jede Aufgabe, deren Ausführung länger als die standardmäßigen 60 Sekunden dauert. Entwickler können mit der set_time_limit() -Funktion einstellen, wie lange eine PHP-Aufgabe ausgeführt werden darf. Wenn dies länger als das Fenster zwischen den Aufgaben ist, können Sie am Ende mehr als eine Kopie von wp-cron.php ausführen.

Beide Probleme werden innerhalb der internen Sperre von WP-Cron behoben und sind keine häufigen Probleme.

WP-Cron intern verwalten

WP-Cron ist vorkonfiguriert und betriebsbereit, sodass Sie nichts tun müssen, um es auf Ihren WordPress-Sites zu aktivieren.

Bei der Erstinstallation von WordPress werden mehrere Aufgaben automatisch konfiguriert. Sie können ein paar einfache Befehle von der Befehlszeile oder eines von mehreren Plugins verwenden, um die genauen Jobs zu finden, die von WP-Cron ausgeführt werden.

WP-Cron Von der CLI

Wenn Sie Terminus installiert haben, können Sie leicht alle Details sehen, was mit WP-Cron vor sich geht. Terminus, durch WP-CLI, kann Ihnen Details zeigen wie:

  • Was geplant ist zu laufen
  • Was als nächstes laufen wird
  • Die Event-Hooks, die eingerichtet sind

Sie können auch Ihre eigenen Jobs planen, vorhandene Jobs ausführen und fast alles verwalten, was mit WP—Cron zu tun hat – alles über die Befehlszeile.

Eines der ersten Dinge, die Sie tun möchten, ist WP-Cron zu testen, um sicherzustellen, dass alles richtig funktioniert. Wenn Sie den folgenden Befehl ausführen, ersetzen Sie SITE_NAME durch den Namen Ihrer Site aus Ihrem Pantheon-Dashboard und ENV_NAME durch die gewünschte Umgebung („dev“, „test“, „live“ oder multidev branch name).

terminus wp <site>.<env> -- cron test

Wenn alles korrekt funktioniert, sieht das Ergebnis folgendermaßen aus:

Success: WP-Cron spawning is working as expected.

Dadurch wissen Sie, dass WP-Cron auf Ihrer Site ordnungsgemäß funktioniert. Von hier aus können Sie jeden Cron-bezogenen Befehl mit WP-CLI ausführen. Wenn Sie WP-CLI verwenden, um Ihre von Pantheon gehostete WordPress-Site zu verwalten, sollten Sie Terminus verwenden. Das Befehlsformat ist wie folgt:

terminus wp <site>.<env> -- cron <your wp-cron command and switches here>

Alle terminus wp Befehle erfordern einen Site-Namen und eine Umgebung, um zu funktionieren.

Hinweis

Wenn Sie Ihre Site mit der Sicherheitseinstellung in Ihrem Dashboard geschützt haben, kann Terminus cron nicht ausführen, und im Dashboard werden möglicherweise Statusberichtsfehler angezeigt.

Plugins

Wenn Sie WP-Cron im Auge behalten möchten, aber die Befehlszeile nicht mögen, gibt es mehrere Plugins, die Sie verwenden können. WP Crontrol zeigt Ihnen beispielsweise alle für Ihre Site geplanten Ereignisse an. Sie können Jobs sofort in Ihrem WordPress-Admin-Dashboard erstellen, bearbeiten, ausführen oder löschen. Sie können auch neue Aktionen in Zeitpläne einbinden oder vorhandene Aktionen in neue Zeitpläne im Abschnitt Tools verschieben.

WPX Cron Manager Lite wird einen ähnlichen Job mit einer etwas anderen Benutzeroberfläche machen. Dieses Plugin erfordert eine einmalige Installation des WPX-Frameworks, die Sie direkt von der Plugin-Manager-Seite aus durchführen können.

WP-Cron extern verwalten

Wenn Sie mehr Kontrolle über die Cron-Jobs Ihrer Site wünschen oder nicht möchten, dass WP-Cron Aufgaben intern erledigt, können Sie stattdessen externe Crons verwenden. Dies löst die oben diskutierten Probleme für Websites mit hohem und geringem Datenverkehr.

WP-Cron deaktivieren

Als erstes müssen Sie die interne Verarbeitung von WP-Cron deaktivieren. Fügen Sie die folgende Zeile zu Ihrer wp-config.php -Datei hinzu:

wp-config.php
define('DISABLE_WP_CRON', true);

Hinweis

Es gibt viele wichtige Aufgaben, um die sich WP-Cron kümmert.

Kostenlose Dienste

Sobald Sie WP-Cron deaktiviert haben, benötigen Sie einen Dienst, der in regelmäßigen Abständen eine URL aufruft. Der einfachste Weg, dies zu tun, besteht darin, ein Konto bei einem kostenlosen Cron-Dienst einzurichten:

  • EasyCron
  • Set Cron Job
  • cron-job

Jeder der oben genannten Dienste erledigt die Aufgabe. Durch Deaktivieren von WP-Cron haben Sie die automatische Überprüfung und den Aufruf des wp-cron.php -Skripts deaktiviert. Sie müssen diese URL nun selbst mit einem der oben genannten Dienste aufrufen. Bei den meisten von ihnen ist es so einfach:

  1. Ein Konto einrichten
  2. Einen Job einrichten, der https://yourdomain.tld/wp-cron.php?doing_wp_cron

Replace `yourdomain .tld‘ mit Ihrer Domain.

Je nachdem, welchen Dienst Sie verwenden, haben Sie möglicherweise die Möglichkeit, mehrere Jobs zu unterschiedlichen Zeiten einzurichten. Das Erstellen eines einzelnen Jobs, der das wp-cron.php -Skript Ihrer Site alle 15 Minuten aufruft, ist alles, was Sie brauchen. WP-Cron kümmert sich um den Rest. Wenn Sie neue Zeitpläne erstellen, die öfter als einmal alle 15 Minuten ausgeführt werden müssen, müssen Sie Ihren Job entsprechend anpassen.

Es ist wichtig, dass Sie der Abfragevariablen doing_wp_cron keinen Wert hinzufügen.

Eigenen Server verwenden

Wenn Sie Ihren eigenen Server verwalten, können Sie den Cron-Dienst verwenden, um das wp-cron.php -Skript aufzurufen. Sie müssen lernen, wie Sie einen Cron-Job richtig einrichten und so etwas wie wget oder curl , um eine Webseite abzurufen. Wenn Sie keine besonderen Vorsichtsmaßnahmen treffen, ist es nicht sicherer, Ihren eigenen Server im Vergleich zu einem webbasierten Cron-Dienst zu verwenden.

Sicherheit

Zum größten Teil ist wp-cron.php sicher. Sie können nur einen Parameter übergeben, der sich auf das Skript auswirkt (doing_wp_cron ). Dieser $_GET Wert wird nicht gefiltert; es wird nur als Flag und nicht als Eingabe für einen Prozess oder eine Variable verwendet. Darüber hinaus werden alle Eingaben ignoriert.

Während kein Skript auf einem mit dem Internet verbundenen Server 100% sicher ist, wp-cron.php Derzeit keine bekannten Schwachstellen oder Exploits aufweist.

WordPress Cron Plugins

WordPress hat viele Plugins, die sowohl interne WP-Cron-Aufgaben als auch externe Cron-Jobs steuern. Da Pantheon keine Cron-Dienste anbietet, empfehlen oder raten wir von der Verwendung eines bestimmten Plugins ab. Wir empfehlen Ihnen, die Liste der WordPress-Cron-Plugins zu überprüfen und in Ihrer Entwicklungsumgebung zu experimentieren, um das zu finden, das Ihren Anforderungen am besten entspricht.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.