Ajout du système de cache pour les notifications
Problème : Les notifications étaient collectées à chaque requête sur projects.json, causant des problèmes de performance et de mémoire. Solution : Mise en cache des notifications par projet et par utilisateur - Nouvelle méthode getNotificationsLight() dans ProjectPage avec cache - Cache invalidé automatiquement via les hooks existants (page/file update) - Cache par utilisateur pour inclure le isRead spécifique Performance : Les notifications sont calculées une fois puis servies depuis le cache jusqu'à ce qu'un changement survienne (commentaire, brief, etc.) Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
This commit is contained in:
parent
e73e25b1da
commit
bb71da081b
3 changed files with 62 additions and 20 deletions
|
|
@ -1,9 +1,11 @@
|
|||
<?php
|
||||
|
||||
// page.update:after && page.changeStatus:after
|
||||
return function($newPage, $oldPage) {
|
||||
return function($newPage, $oldPage) {
|
||||
$project = $newPage->template() == 'project' ? $newPage : $newPage->parents()->findBy('template', 'project');
|
||||
if ($project) {
|
||||
$steps = $project->rebuildStepsCache();
|
||||
$project->rebuildStepsCache();
|
||||
// Invalider aussi le cache des notifications (briefs validés, etc.)
|
||||
$project->invalidateNotificationsCache();
|
||||
}
|
||||
};
|
||||
Loading…
Add table
Add a link
Reference in a new issue