Script Cron e CLI
Lo scheduler pseudo-cron e gli script a riga di comando opzionali per host avanzati.
TubePress esegue i propri compiti ricorrenti — ricalcolo delle classifiche, verifica dei job di transcodifica, importazione di feed, aggiornamento delle sitemap e altro ancora — senza richiedere la configurazione di un crontab di sistema. Questa pagina illustra lo pseudo-cron, il heartbeat che lo mantiene attivo e gli script da riga di comando opzionali per host avanzati.
Lo pseudo-cron
Il CronManager è uno scheduler in stile WordPress. I task vengono registrati con un nome e un intervallo; CronManager::run() viene chiamato una volta al termine di ogni rendering di pagina. Ogni task viene eseguito solo se è trascorso abbastanza tempo dall'ultima esecuzione.
// Register a task (typically from a plugin's boot() method)
CronManager::register('promo_refresh', 600, function () {
Promo::rebuildCache(); // runs at most every 10 minutes
});È progettato per essere sicuro su qualsiasi host:
- Blocco atomico. Un
UPDATEcondizionale sulla tabellasettingsacquisisce ogni esecuzione, quindi due richieste simultanee non possono mai eseguire lo stesso task due volte. - Timestamp persistenti. I tempi dell'ultima esecuzione sono memorizzati in
settings(conautoload = 0), quindi la pianificazione sopravvive a riavvii e crash — il successivo caricamento di pagina riprende semplicemente da dove era rimasto. - Backoff automatico. Un task che continua a generare errori viene ritentato con un intervallo in crescita esponenziale (con un massimo di un'ora) fino al ripristino; il contatore di errori si azzera in caso di successo.
Il heartbeat — nessun crontab richiesto
Uno pseudo-cron si attiva solo quando le pagine vengono renderizzate, il che rappresenta un problema per un sito nuovo o a basso traffico. TubePress risolve questo con un heartbeat autogestito: un processo CLI leggero (bin/heartbeat.php) che fa il ping alla home page circa ogni 50 secondi, mantenendo lo scheduler attivo anche con zero visitatori.
- È protetto dal PID e riavviato automaticamente da qualsiasi richiesta web in caso di interruzione — non è necessario avviarlo o supervisionarlo.
- Disattivalo in fase di esecuzione impostando
heartbeat_enabledsu0.
crontab -e, nessun supervisore, nessun servizio aggiuntivo da gestire.Cosa viene eseguito dallo scheduler
Il core e i plugin inclusi registrano i propri task — ad esempio il ricalcolo del punteggio CTR, l'invio e il ritentativo dei job di transcodifica, le importazioni di feed, l'elaborazione del catalogo, i job di traduzione AI e gli aggiornamenti della sitemap. Man mano che si abilitano i sottosistemi, aggiungono i propri task automaticamente; non è necessaria alcuna configurazione aggiuntiva.
Script CLI opzionali
Per operazioni intensive o una tantum, alcuni script da riga di comando sono inclusi in bin/ e possono essere eseguiti manualmente o da un vero crontab su host idonei. Includono worker a lunga esecuzione (per download del catalogo ed eliminazioni in blocco) e strumenti di manutenzione. Eseguili con il PHP CLI di sistema dalla radice del progetto:
php bin/heartbeat.php # run the heartbeat in the foreground
php bin/catalogue-worker.php # process catalogue download jobsUtilizzo di un vero crontab (avanzato)
Se preferisci gestire lo scheduler dal sistema operativo — ad esempio su un sito ad alto traffico dove si desidera una temporizzazione precisa e prevedibile — puoi disabilitare il heartbeat e aggiungere un'unica voce di cron di sistema che richiede la home page (o esegue il heartbeat una volta) a intervalli brevi. La maggior parte degli operatori non ne ha mai bisogno; il heartbeat integrato è sufficiente.
Passaggi successivi
Ancora bloccato?
Apri un ticket dalla tua dashboard e il nostro team ti aiuterà.