Cron- & CLI-scripts
De pseudo-cron-planner en de optionele command-line-scripts voor geavanceerde hostingomgevingen.
TubePress voert zijn terugkerende taken uit — zoals het herberekenen van rangschikkingen, het pollen van transcoderingstaken, het importeren van feeds, het vernieuwen van sitemaps en meer — zonder dat u een systeemcrontab hoeft in te stellen. Deze pagina beschrijft de pseudo-cron, de heartbeat die hem actief houdt en de optionele opdrachtregelscripts voor geavanceerde hosts.
De pseudo-cron
De CronManager is een WordPress-achtige planner. Taken worden geregistreerd met een naam en een interval, en CronManager::run() wordt eenmaal aangeroepen aan het einde van elke paginaweergave. Elke taak wordt alleen uitgevoerd als er voldoende tijd is verstreken sinds de laatste uitvoering.
// Register a task (typically from a plugin's boot() method)
CronManager::register('promo_refresh', 600, function () {
Promo::rebuildCache(); // runs at most every 10 minutes
});Hij is ontworpen om veilig te werken op elke host:
- Atomisch vergrendelen. Een voorwaardelijke
UPDATEop desettings-tabel claimt elke uitvoering, zodat twee gelijktijdige verzoeken dezelfde taak nooit twee keer kunnen uitvoeren. - Persistente tijdstempels. De tijden van de laatste uitvoering worden opgeslagen in
settings(metautoload = 0), zodat het schema herstarten en crashes overleeft — de volgende paginaweergave pakt gewoon op waar het was gebleven. - Automatische backoff. Een taak die blijft mislukken, wordt opnieuw geprobeerd met een exponentieel groeiend interval (maximaal één uur) totdat hij herstelt, en de foutenteller wordt bij succes gereset.
De heartbeat — geen crontab vereist
Een pseudo-cron wordt alleen geactiveerd wanneer pagina's worden weergegeven, wat een probleem is voor een gloednieuwe site of een site met weinig verkeer. TubePress lost dit op met een zelfbeheerde heartbeat: een lichtgewicht CLI-proces (bin/heartbeat.php) dat uw startpagina ongeveer elke 50 seconden aanspreekt, zodat de planner blijft draaien zelfs zonder bezoekers.
- Het is PID-beveiligd en wordt automatisch opnieuw gestart door elk webverzoek als het ooit stopt — u hoeft het niet te starten of te bewaken.
- Schakel het tijdens runtime uit door
heartbeat_enabledop0in te stellen.
crontab -e, geen supervisor, geen extra services om te onderhouden.Wat de planner uitvoert
De kern en de meegeleverde plugins registreren hun eigen taken — bijvoorbeeld CTR-scoreherberekening, het verzenden en opnieuw proberen van transcoderingstaken, feedimports, catalogusverwerking, AI-vertaaltaken en sitemap-verversingen. Naarmate u subsystemen inschakelt, voegen ze hun taken automatisch toe; er is niets te configureren.
Optionele CLI-scripts
Voor zware of eenmalige bewerkingen worden een aantal opdrachtregelscripts meegeleverd in bin/, die handmatig of vanuit een echte crontab kunnen worden uitgevoerd op geschikte hosts. Ze omvatten langlopende workers (voor catalogusdownloads en bulkverwijderingen) en onderhoudshulpmiddelen. Voer ze uit met de systeem-PHP-CLI vanuit de projecthoofdmap:
php bin/heartbeat.php # run the heartbeat in the foreground
php bin/catalogue-worker.php # process catalogue download jobsEen echte crontab gebruiken (geavanceerd)
Als u de voorkeur geeft aan het aansturen van de planner vanuit het besturingssysteem — bijvoorbeeld op een site met veel verkeer waar u een strakke, voorspelbare timing wilt — kunt u de heartbeat uitschakelen en een enkele systeemcronvermelding toevoegen die uw startpagina opvraagt (of de heartbeat eenmalig uitvoert) op een kort interval. De meeste beheerders hebben dit nooit nodig; de ingebouwde heartbeat is voldoende.
Volgende stappen
Nog vastgelopen?
Open een ticket vanuit uw dashboard en ons team helpt u verder.