Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Tech] Optimisations #3713

Merged
merged 4 commits into from
Feb 18, 2025
Merged

[Tech] Optimisations #3713

merged 4 commits into from
Feb 18, 2025

Conversation

numew
Copy link
Collaborator

@numew numew commented Feb 14, 2025

Ticket

#3711

Description

Quelques optimisations mineures pour régler une partie des alertes "bleues" qui remonte le plus souvent sur sentry

Changements apportés

  • Ajout d'un index sur la colonne cp_occupant du signalement. Permet d'accélerer d'un facteur 100 la requête de vérification de l'existence de doublon (draft =>signalement). Voir test sur une boucle lancant 50 de ses requêtes :
    1_x50_v1
    1_x50_v2

  • Préchargement de la liste de situations et critères à la visualisation d'un signalement BO afin d'éviter de les requeter unitairement
    signalement_view_v1
    signalement_view_v2

  • Mise en cache (15 minutes) du total de signalement pour les stats sur la homepage (la requête commence a ralentir, et on a pas besoin de temps réel)

  • Lors de la création/envoie de notifications suite à l'ajout d'un suivi (depuis BO ou FO) récupération de la liste des UserPartner et Partner d'un partenaire pour éviter de faire des reqûetes unitaire
    add_suivi_n1_v1 png
    add_suivi_n1_v2

Pré-requis

execute-migration name=Version20250214125623 direction=up

Tests

  • Vérifier que rien est cassé
  • Si vous voulez vérifier certains points, se mettre sur copie de base de prod pour être en conditions réelles

@numew numew requested review from emilschn, hmeneuvrier and sfinx13 and removed request for emilschn and hmeneuvrier February 14, 2025 15:11
.env Outdated Show resolved Hide resolved
src/Controller/Back/SignalementController.php Show resolved Hide resolved
foreach ($this->signalement->getAffectations() as $affectation) {
if (AffectationStatus::STATUS_WAIT->value === $affectation->getStatut()
|| AffectationStatus::STATUS_ACCEPTED->value === $affectation->getStatut()) {
$partnerRecipientsFiltered = $this->getRecipientsPartner($affectation->getPartner());
$partnerRecipients = $this->getRecipientsPartner($affectation->getPartner(), false);
$partner = $this->partnerRepository->getWithUserPartners($affectation->getPartner());
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Je n'ai pas compris pourquoi tu n'as pas juste fait

$partner = $affectation->getPartner();

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

le $affectation->getPartner(); c'est ce qu'on avait avant : ca génère les requête de récupération unitaire, ici j'ai mis en place une requete avec select groupé et jointure dans le repository pour le contourner

Copy link
Collaborator

@hmeneuvrier hmeneuvrier left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

mes tests ont l'air OK

@hmeneuvrier hmeneuvrier merged commit 4760b8e into develop Feb 18, 2025
4 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants