Bonjour,

Je developpe une API REST en symfony. Cela concerne un ensemble d'articles. La partie cliente est developpée en angular2.

Les utilisateurs peuvent faire appel a l'api pour:
***- Créer des articles

  • Commenter
  • Reagir avec des j'aimes ou j'aimes pas.***

Chanque article a un temps de vie comme sur snapchat, que son auteur peut choisir (2h, 3h, 24h).

Alors, pour fermer un aricle je fais comme suit:
***- Je mets un compte a rebours concernant chaque article depuis Angular2

  • Quand ce compte a rebours est terminé... cela declenche un evenement qui envoie une requette a l'api afin de fermer l'article.***

Ca fonctionne, mais je constate le probleme suivant:

Lors de la fermeture d'un article, il ya trop de requettes qui sont envoyés au serveur. Imaginez que j'ai milles utilisateurs connectés au site. Quand le compte a rebours prend fin, il y aura 1000 requettes qui seront envoyées au serveur concernant toutes la fermeture d'un seul et meme article.

Est ce qu'il n'y a pas moyens de faire en sorte que l'api decouvre lui meme quand il faut fermer un article et qu'il envoie une notification a tous les clients connectés afin qu'ils savhent a l'instant que l'article est fermé?

Merci d'avance pour vos aides.

3 réponses


Heo! Quelqu'un peut me donner une idee?

Hello

Il faudrait que ton front masque uniquement l'article une fois le copte à rebours écoulé.

Pour supprimer (physiquement ou logiquement), tu peux n'afficher que les articles non terminés et faire un CRON qui tourne une fois par jour par exemple pour supprimer les articles périmés.

Est-ce que cela pourrait résoudre ton problème ?

Le probleme est qu'il ne suffit pas de masquer l'article. Il faut qu'il soit accessible meme quand il est fermé. En plus, il faut que lorsque l'article se ferme, j'envoie unme requette au serveur pour faire des calculs afin d'afficher aux utilisateurs des statistiques qui concernent les interactions par rapport a l'article( Qui a discuté le plus, quel commentaire a été le plus apprecié etc...)