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

Empêcher de synchro plusieurs fois la même convention d'affilée #2388

Closed
celineung opened this issue Oct 18, 2024 · 4 comments · Fixed by #2473
Closed

Empêcher de synchro plusieurs fois la même convention d'affilée #2388

celineung opened this issue Oct 18, 2024 · 4 comments · Fixed by #2473
Assignees

Comments

@celineung
Copy link
Contributor

celineung commented Oct 18, 2024

Problème

Cas de synchro multiples sur ces conventions:

  • e9e6eaab-326f-4359-a614-a6cc93920c32 (2 appels le 11/10 à 09h24:53)
  • c08aaf3c-f9fa-4c1d-821d-2189975507cc (2 appels le 17/10 à 08h33:25)
  • 194726b2-27c7-472f-ae7b-4551ec18e98c (2 appels le 17/10 à 10h09:49)

Ces conventions sont diffusées à l'agence sur la même seconde.

Nous avons mis une solution côté api + front pour éviter de brute cliquer sur le bouton et envoyer plusieurs fois d'affilé les conventions, mais certains utilisateurs y arrivent tout de même.

==> Pourquoi ces envois multiples n'ont pas été bloqués ?

Rappel du processus de synchro

La convention est envoyée :

  • à ses consommateurs si changement de statut
  • si un utilisateur clique sur le bouton de rediffusion depuis son espace prescripteur
  • si un admin IF clique sur le bouton de rediffusion depuis son espace admin
  1. Si changement de statut de la convention ==> ajout de l'event ConventionBroadcastRequested au crawler
  2. Si un utilisateur/admin clique sur le bouton: Appel du usecase BroadcastConventionAgain qui vérifie si la dernière synchro (que ce soit déclenché manuellement par un utilisateur ou par le cycle de vie de la convention) a eu lieue il y a moins de 4h
    1. si moins de 4h: throw une erreur
    2. sinon, ajout de l'event ConventionBroadcastRequested au crawler
  3. Le crawler envoie ensuite les conventions aux consommateurs sur chaque event ConventionBroadcastRequested
@celineung celineung converted this from a draft issue Oct 18, 2024
@gargagif gargagif changed the title Empêcher de synchro plusieurs la même convention d'affilé Empêcher de synchro plusieurs fois la même convention d'affilé Oct 29, 2024
@gargagif gargagif changed the title Empêcher de synchro plusieurs fois la même convention d'affilé Empêcher de synchro plusieurs fois la même convention d'affilée Oct 29, 2024
@celineung
Copy link
Contributor Author

à discuter avec les devs sur la solution

@JeromeBu
Copy link
Collaborator

JeromeBu commented Nov 6, 2024

Il y a 2 proposition de solutions, une très simple en front qui force à attendre 10 secondes (coté front) avant de pouvoir diffuser de nouveau une convention :

L'autre option est d'aller check dans l'outbox, chose qu'on essaye d'éviter, car les payload de l'outbox peuvent changer. Pas de migration sur cette table.

Je suis pour privilégier la première option, qui est beaucoup plus simple, mais qui est moins strict. Et on attends d'avoir d'autre problème remonté avant de décider si on merge la seconde option.

Idem pour moi (clément)

Option 1 🚀
Option 2 🐈

@github-project-automation github-project-automation bot moved this from Ready for review to En staging in Immersion Facilitée Nov 6, 2024
@JeromeBu
Copy link
Collaborator

JeromeBu commented Nov 6, 2024

On a mergé l'option 1

@gargagif
Copy link
Contributor

gargagif commented Nov 6, 2024

Recette OK

@JeromeBu JeromeBu moved this from En staging to En production in Immersion Facilitée Nov 6, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment