Cron- & CLI-Skripte
Der Pseudo-Cron-Scheduler und die optionalen Kommandozeilen-Skripte für fortgeschrittene Hosts.
TubePress führt seine wiederkehrenden Aufgaben – Neuberechnung von Rankings, Abfragen von Transkodierungsaufträgen, Importieren von Feeds, Aktualisieren von Sitemaps und mehr – durch, ohne dass Sie einen System-Crontab konfigurieren müssen. Diese Seite erklärt den Pseudo-Cron, den Heartbeat, der ihn am Leben erhält, und die optionalen Befehlszeilenskripte für fortgeschrittene Hosts.
Der Pseudo-Cron
Der CronManager ist ein Scheduler im WordPress-Stil. Aufgaben werden mit einem Namen und einem Intervall registriert, und CronManager::run() wird am Ende jedes Seitenrenderings einmal aufgerufen. Jede Aufgabe wird nur ausgeführt, wenn seit der letzten Ausführung genug Zeit vergangen ist.
// Register a task (typically from a plugin's boot() method)
CronManager::register('promo_refresh', 600, function () {
Promo::rebuildCache(); // runs at most every 10 minutes
});Er ist darauf ausgelegt, auf jedem Host sicher zu sein:
- Atomares Sperren. Ein bedingtes
UPDATEauf dersettings-Tabelle beansprucht jeden Lauf, sodass zwei gleichzeitige Anfragen dieselbe Aufgabe nie zweimal ausführen können. - Persistente Zeitstempel. Letzte-Ausführungs-Zeiten werden in
settings(mitautoload = 0) gespeichert, sodass der Zeitplan Neustarts und Abstürze überlebt – der nächste Seitenaufruf macht einfach dort weiter, wo er aufgehört hat. - Automatisches Backoff. Eine Aufgabe, die wiederholt fehlschlägt, wird mit einem exponentiell wachsenden Intervall (maximal eine Stunde) wiederholt, bis sie sich erholt, und der Fehlerzähler wird bei Erfolg zurückgesetzt.
Der Heartbeat – kein Crontab erforderlich
Ein Pseudo-Cron wird nur ausgelöst, wenn Seiten gerendert werden, was bei einer brandneuen oder wenig besuchten Website ein Problem darstellt. TubePress löst dies mit einem selbstverwalteten Heartbeat: einem leichtgewichtigen CLI-Prozess (bin/heartbeat.php), der Ihre Startseite ungefähr alle 50 Sekunden anpingt, damit der Scheduler auch bei null Besuchern weiterläuft.
- Er ist PID-geschützt und wird durch jede Web-Anfrage automatisch neu gestartet, wenn er jemals abstirbt – Sie starten oder überwachen ihn nicht.
- Deaktivieren Sie ihn zur Laufzeit, indem Sie
heartbeat_enabledauf0setzen.
crontab -e, kein Supervisor, keine zusätzlichen Dienste zu verwalten.Was auf dem Scheduler läuft
Der Kern und die mitgelieferten Plugins registrieren ihre eigenen Aufgaben – zum Beispiel CTR-Score-Neuberechnung, Versand und Wiederholung von Transkodierungsaufträgen, Feed-Importe, Katalogverarbeitung, KI-Übersetzungsaufträge und Sitemap-Aktualisierungen. Wenn Sie Subsysteme aktivieren, fügen sie ihre Aufgaben automatisch hinzu; es ist nichts zu konfigurieren.
Optionale CLI-Skripte
Für aufwendige oder einmalige Operationen werden einige Befehlszeilenskripte in bin/ mitgeliefert und können manuell oder aus einem echten Crontab auf geeigneten Hosts ausgeführt werden. Sie umfassen langlebige Worker (für Katalog-Downloads und Massenlöschungen) und Wartungshelfer. Führen Sie sie mit dem System-PHP-CLI aus dem Projektstamm aus:
php bin/heartbeat.php # run the heartbeat in the foreground
php bin/catalogue-worker.php # process catalogue download jobsEinen echten Crontab verwenden (für Fortgeschrittene)
Wenn Sie den Scheduler lieber vom Betriebssystem aus steuern möchten – zum Beispiel auf einer stark besuchten Website, auf der Sie präzises, vorhersehbares Timing wünschen – können Sie den Heartbeat deaktivieren und einen einzelnen System-Cron-Eintrag hinzufügen, der Ihre Startseite in einem kurzen Intervall aufruft (oder den Heartbeat einmal ausführt). Die meisten Betreiber benötigen dies nie; der integrierte Heartbeat ist ausreichend.
Nächste Schritte
Noch Hilfe benötigt?
Erstellen Sie ein Ticket in Ihrem Dashboard und unser Team hilft Ihnen gerne weiter.