Files
annu-kute-ced/scripts/warm-cache.php
T

47 lines
1.4 KiB
PHP
Raw Normal View History

<?php
/**
* Préchauffe le cache API de l'application.
*
* À appeler en tâche cron pour éviter que le premier visiteur ne paye le coût
* des appels API externes (PeerTube, Castopod, Funkwhale) sur cache froid.
*
* Exemple cron (toutes les 5 minutes) :
* php /var/www/annu-kute-ced/scripts/warm-cache.php >/dev/null 2>&1
* (à programmer toutes les 5 minutes dans la crontab)
*/
require_once __DIR__ . '/../includes/config.php';
$start = microtime(true);
$results = [];
// Vidéos PeerTube
$results['recent_videos'] = count(getRecentVideos());
$results['trending_videos'] = count(getTrendingVideos());
$results['shorts'] = count(getShorts());
// Catégories affichées
$categories = getDisplayCategories();
$results['display_categories'] = count($categories);
foreach ($categories as $category) {
$results['category_' . $category['id']] = count(getVideosByCategory($category['id']));
}
// Live
$live = getLiveStream();
$results['live_stream'] = $live ? 1 : 0;
// Podcasts Castopod
$results['castopod_episodes'] = count(getCastopodEpisodes());
// Funkwhale (si activé)
if (defined('FUNKWHALE_ENABLED') && FUNKWHALE_ENABLED) {
$results['funkwhale_tracks'] = count(getFunkwhaleTracks());
}
$duration = round(microtime(true) - $start, 2);
echo "Cache préchauffé en {$duration}s\n";
foreach ($results as $key => $value) {
echo " - {$key}: {$value}\n";
}