Aller au contenu
TubePress — gratuit, auto-hébergé & activement maintenu
Référence développeur

Cron et scripts CLI

Le planificateur pseudo-cron et les scripts en ligne de commande optionnels pour les hébergements avancés.

TubePress exécute ses tâches récurrentes — recalcul des classements, suivi des jobs de transcodage, importation de flux, rafraîchissement des sitemaps et bien plus — sans nécessiter la configuration d'un crontab système. Cette page explique le pseudo-cron, le heartbeat qui le maintient actif, et les scripts en ligne de commande optionnels pour les hébergements avancés.

Le pseudo-cron

Le CronManager est un planificateur de style WordPress. Les tâches sont enregistrées avec un nom et un intervalle, et CronManager::run() est appelé une fois à la fin de chaque rendu de page. Chaque tâche ne s'exécute que si suffisamment de temps s'est écoulé depuis sa dernière exécution.

// Register a task (typically from a plugin's boot() method)
CronManager::register('promo_refresh', 600, function () {
    Promo::rebuildCache();   // runs at most every 10 minutes
});

Il est conçu pour être sûr sur n'importe quel hébergement :

  • Verrouillage atomique. Un UPDATE conditionnel sur la table settings revendique chaque exécution, de sorte que deux requêtes simultanées ne peuvent jamais exécuter la même tâche deux fois.
  • Horodatages persistants. Les derniers temps d'exécution sont stockés dans settings (avec autoload = 0), de sorte que la planification survit aux redémarrages et aux pannes — le prochain chargement de page reprend simplement là où il s'était arrêté.
  • Recul automatique. Une tâche qui échoue continuellement est réessayée avec un intervalle croissant de façon exponentielle (plafonné à une heure) jusqu'à sa reprise, et le compteur d'échecs se réinitialise en cas de succès.

Le heartbeat — aucun crontab requis

Un pseudo-cron ne se déclenche que lors du rendu des pages, ce qui pose problème pour un site tout nouveau ou à faible trafic. TubePress résout cela avec un heartbeat autogéré : un processus CLI léger (bin/heartbeat.php) qui interroge votre page d'accueil environ toutes les 50 secondes afin que le planificateur continue de fonctionner même sans visiteurs.

  • Il est protégé par PID et redémarré automatiquement par toute requête web s'il venait à s'arrêter — vous n'avez pas à le démarrer ni à le superviser.
  • Désactivez-le à l'exécution en définissant heartbeat_enabled sur 0.
C'est pourquoi TubePress fonctionne sur hébergement mutualisé. Entre le pseudo-cron et le heartbeat, les tâches planifiées s'exécutent d'elles-mêmes — pas de crontab -e, pas de superviseur, pas de services supplémentaires à maintenir.

Ce qui s'exécute sur le planificateur

Le cœur et les plugins intégrés enregistrent leurs propres tâches — par exemple le recalcul du score CTR, l'envoi et la reprise des jobs de transcodage, les importations de flux, le traitement du catalogue, les tâches de traduction IA et les rafraîchissements de sitemaps. À mesure que vous activez des sous-systèmes, ils ajoutent leurs tâches automatiquement ; il n'y a rien à configurer.

Scripts CLI optionnels

Pour les opérations lourdes ou ponctuelles, quelques scripts en ligne de commande sont fournis dans bin/ et peuvent être exécutés manuellement ou depuis un vrai crontab sur les hébergements compatibles. Ils comprennent des workers de longue durée (pour les téléchargements du catalogue et les suppressions en masse) et des outils de maintenance. Exécutez-les avec le CLI PHP système depuis la racine du projet :

php bin/heartbeat.php        # run the heartbeat in the foreground
php bin/catalogue-worker.php # process catalogue download jobs
Faites correspondre le PHP CLI au PHP web. Exécutez les scripts CLI avec la même version de PHP qu'utilise votre site (8.2 ou plus récent). Le garde de version refusera de démarrer sur une version plus ancienne.

Utiliser un vrai crontab (avancé)

Si vous préférez piloter le planificateur depuis le système d'exploitation — par exemple sur un site à fort trafic où vous souhaitez une temporisation précise et prévisible — vous pouvez désactiver le heartbeat et ajouter une seule entrée cron système qui interroge votre page d'accueil (ou exécute le heartbeat une fois) à court intervalle. La plupart des opérateurs n'en ont jamais besoin ; le heartbeat intégré est suffisant.

Étapes suivantes

Toujours bloqué ?

Ouvrez un ticket depuis votre tableau de bord et notre équipe vous assistera.

Essayer la démo en direct → Télécharger TubePress →