So stellst Du WordPress auf einen echten Cronjob um
Cronjobs
Ein Cronjob ist eine immer wiederkehrende Aufgabe, die zu festgelegten Zeiten von Betriebssystemen automatisiert ausgeführt wird. Die einzelnen Cronjobs sind in einer als Crontab bezeichneten Tabelle abgespeichert und werden von dort aus aufgerufen. Das funktioniert aber nur, wenn das Cron-System permanent im Hintergrund aktiv ist.
WordPress hat bislang auf dieses Permanenz verzichtet. Damit WP startet, muss eine Seite aufgerufen werden. Um dennoch ebenfalls definierte Aufgaben automatisiert ausführen zu können, gibt es bei WP ein Pseudo-Cron-System, das solche Aufgaben ebenfalls in einer Tabelle abrufbar vorhält.
Das Problem bei der WordPress-Cron ist nun, dass nicht wie beim echten Cron-Job mit Zeitpunkten, sondern mit Intervallen gearbeitet wird. Das aber bedeutet, dass keine genaue Uhrzeit festgelegt werden kann, zu der ein Job laufen soll. Wie zuvor schon erwähnt, startet WP nur, wenn eine Seite besucht wird. Da niemand vorher wissen kann, wann das geschieht, macht auch ein festgelegter Zeitpunkt bei dem Pseudo-Cron-System von WP keinen Sinn.
Das Intervall-System von WP führt dazu, dass die Ausführung von Aufgaben abhängig von der Häufigkeit ist, mit denen eine Seite besucht wird. Wird sie zum Beispiel sehr selten besucht, werden die Cronjobs nur hin und wieder oder tagelang gar nicht ausgeführt. Für viele Betreiber von WP Websites ist das kein Problem, weil die durchzuführenden Aufgaben wie die Kontrolle, ob es neue Updates gibt, keine Dringlichkeit haben. Wer allerdings eine pünktliche regelmäßige Ausführung von Aufgaben bevorzugt, hat mit dem Pseudo-Cron-System von WP ein Problem.
wp-config.php neu konfigurieren
Nun gibt es aber eine Möglichkeit, WordPress dazu zu bringen, in definierten, regelmäßigen Abständen zu starten und nicht nur dann, wenn eine Seite gestartet wird. Dazu muss über wp-config.php ein echter Cron-Job eingerichtet werden, dem die Aufgabe zugeteilt wird, WP unabhängig von den Besucher-Aufrufen zu starten. Dieser echte Cron-Job aktiviert dann zu den gewünschten Zeitpunkten WordPress. Das ist machbar mit einem einzigen Cron-Job. Das Pseudo-Cronjob-System von WP wird deaktiviert. Es werden jetzt nur noch Aufgaben zu den Zeitpunkten aufgerufen, die der echte Cron-Job vorgibt und nicht mehr bei jedem Seitenaufruf. Cronjobs werden am unkompliziertesten über den jeweiligen Host eingerichtet. Die Online-Hilfe bietet hier entsprechende Funktionen an. Der genaue Ablauf ist von Host zu Host etwas unterschiedlich, führt aber zuverlässig zum gewünschten Ergebnis. Der Schlüssel ist die Datei wp-cron.php. Die findet sich Hauptverzeichnis. Der Start kann über den Browser erfolgen.
Um den Pseudo-Cron von WordPress zu deaktivieren fügen Sie bitte den folgenen Eintrag in die Datei wp-config.php ein:
define(‚DISABLE_WP_CRON‘, ‚true‘);
Zusammenfassung
Wer bislang mit der Art, wie Aufgaben bei WP ausgeführt werden kein Problem hatte, braucht keine Veränderung. Wer lieber Kontrolle darüber hat, wie häufig das geschieht und feste Zeitpunkte bevorzugt, kann einen echten Cron-Job mit wenigen Handgriffen einrichten.
Wer seine Rundmails über den eigenen Server versendet, wird daran interessiert sein, dass diese in einem überschaubaren Zeitraum versandt werden. Gerade, wenn es sich um sehr viele Mails handelt, die ja in Pakten versandt werden, ist das über das WP Pseudo-Cronjob-System nicht zu kontrollieren. Hier ist der Betreiber geradezu darauf angewiesen einen echten Cron-Job zu installieren, um zu gewährleisten, dass seine Mails die Adressaten pünktlich erreichen.