Dans la fonction pour générer la table, faites-lui stocker le résultat dans un fichier sur le disque :
/cache/groups/1.txt
/cache/groups/2.txt
Vous n'avez pas nécessairement besoin d'exécuter un travail par lots hebdomadaire pour cela, lors de l'appel de la fonction pour obtenir les données, vérifiez si le cache est obsolète (ou inexistant). Si tel est le cas, générez et mettez en cache les résultats. Sinon, renvoyez simplement le fichier en cache.
function getGroupTable($groupId) {
if (cacheIsStale($groupId)) {
generateCache($groupId);
}
return file_get_contents($cacheFile);
}
Le cacheIsStale()
la fonction pourrait simplement regarder les les horodatages du fichier
pour tester la fraîcheur.