Ga naar inhoud
TubePress — gratis, zelf gehost & actief onderhouden
Ontwikkelaarsreferentie

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 UPDATE op de settings-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 (met autoload = 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_enabled op 0 in te stellen.
Dit is waarom TubePress werkt op gedeelde hosting. Dankzij de pseudo-cron en de heartbeat worden geplande taken gewoon uitgevoerd — geen 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 jobs
Zorg dat de CLI-PHP overeenkomt met de web-PHP. Voer CLI-scripts uit met dezelfde PHP-versie die uw site gebruikt (8.2 of nieuwer). De versiebewaker weigert te starten op oudere versies.

Een 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.

Probeer de live demo → TubePress downloaden →