Wofür Cronjobs gebraucht werden
Ein Cronjob ist eine Aufgabe, die der Server zu festgelegten Zeiten automatisch ausführt - ohne dass jemand die Seite aufrufen muss. Typische Einsatzfälle auf einem Webspace:
- Geplante Beiträge und Newsletter zuverlässig veröffentlichen
- Nächtliche Sicherungen oder Datenbank-Aufräumarbeiten anstoßen
- Produktdaten, Preise oder Termine aus einer externen Quelle importieren
- Zwischenspeicher regelmäßig leeren
- Shop-Aufgaben wie Bestandsabgleich oder das Erinnern an abgebrochene Bestellungen
Aufgabe in Plesk anlegen
- In Plesk den Aufgabenplaner öffnen.
- Auf Aufgabe hinzufügen klicken.
- Den Typ wählen - dazu gleich mehr.
- Ziel eintragen: den Pfad zum Skript beziehungsweise die aufzurufende Adresse.
- Den Zeitplan festlegen.
- Speichern - und die Aufgabe einmal manuell ausführen, um zu sehen, ob sie tut, was sie soll.
Der letzte Punkt ist der wichtigste: Ein Cronjob, der nachts still scheitert, fällt sonst erst auf, wenn jemand die fehlenden Ergebnisse bemerkt.
Welchen Typ wählen?
- PHP-Skript ausführen. Die übliche Wahl für Aufgaben innerhalb deiner Webseite. Du gibst den Pfad relativ zum Dokumentenstammverzeichnis an, etwa
/httpdocs/wp-cron.php. Das Skript läuft direkt über den PHP-Interpreter - ohne Zeitbegrenzung durch den Webserver, was bei längeren Aufgaben der entscheidende Vorteil ist. - URL abrufen. Ruft eine Adresse auf, so als würde ein Besucher die Seite öffnen. Praktisch, wenn eine Erweiterung ausdrücklich eine Aufruf-Adresse für ihren Cron vorgibt. Nachteil: Es gelten dieselben Zeitlimits wie für einen normalen Seitenaufruf.
- Befehl ausführen. Für Fälle, in denen ein Kommandozeilenaufruf nötig ist, etwa das Aufräumen eines Verzeichnisses.
Zeitplan festlegen
Plesk bietet für den Zeitplan vorgefertigte Intervalle - stündlich, täglich, wöchentlich - und zusätzlich die klassische Cron-Schreibweise aus fünf Feldern:
Minute Stunde Tag des Monats Monat Wochentag
| Ausdruck | Bedeutung |
|---|---|
*/15 * * * * | alle 15 Minuten |
0 * * * * | stündlich zur vollen Stunde |
30 3 * * * | täglich um 3:30 Uhr |
0 4 * * 1 | montags um 4:00 Uhr |
0 5 1 * * | am 1. jedes Monats um 5:00 Uhr |
Leg rechenintensive Aufgaben in die Nacht und vermeide die volle Stunde - dort starten erfahrungsgemäß die meisten Jobs gleichzeitig. Ein Zeitpunkt wie 3:17 Uhr ist unauffälliger als 3:00 Uhr.
WordPress-Cron richtig auslagern
WordPress bringt einen eigenen Zeitplaner mit, der allerdings kein echter Cron ist: wp-cron.php wird bei jedem Seitenaufruf mitgeprüft. Das hat zwei Nachteile - auf einer wenig besuchten Seite laufen geplante Aufgaben verspätet oder gar nicht, und auf einer stark besuchten Seite läuft die Prüfung unnötig oft mit.
Die saubere Lösung besteht aus zwei Schritten:
- In der
wp-config.phpden eingebauten Auslöser abschalten:define('DISABLE_WP_CRON', true); - Im Plesk-Aufgabenplaner eine Aufgabe anlegen, die
/httpdocs/wp-cron.phpals PHP-Skript ausführt - für die meisten Seiten reicht ein Intervall von 15 Minuten.
Ergebnis: geplante Beiträge erscheinen pünktlich, Newsletter gehen zuverlässig raus, und die Seite wird beim normalen Aufruf nicht mehr durch die Cron-Prüfung ausgebremst.
Wenn ein Cronjob nicht läuft
- Falscher Pfad. Der häufigste Fehler. Der Pfad wird relativ zum Abonnement angegeben, nicht als vollständige Internetadresse - typisch ist
/httpdocs/.... - Skript bricht mittendrin ab. Bei längeren Aufgaben greifen Zeit- und Speichergrenzen. Beide lassen sich in den PHP-Einstellungen der Domain anheben, siehe PHP-Version und Einstellungen ändern.
- Falsche PHP-Version. Prüfe, ob die Aufgabe mit derselben PHP-Version läuft wie deine Webseite.
- Keine Rückmeldung. Aktiviere die Benachrichtigung per E-Mail - dann bekommst du die Ausgabe des Skripts zugestellt und siehst Fehlermeldungen sofort.
- Aufgabe läuft doppelt. Ein zu kurzes Intervall bei einer langlaufenden Aufgabe führt dazu, dass sich Durchläufe überlappen. Intervall vergrößern oder eine Sperre im Skript einbauen.
Häufige Fragen
Aufgabenplaner in jedem Paket
Der Aufgabenplaner ist Teil von Plesk und in allen Webspace-Paketen enthalten - ohne Begrenzung der Anzahl und ohne Aufpreis.
Webspace-Pakete & Preise ansehen