web-dev-qa-db-fra.com

Stockage de messages sociaux en utilisant une API transitoire

Je voudrais savoir si c'est une bonne pratique d'utiliser une API transitoire pour mettre en cache des compteurs sociaux pour chaque message. Le chargement des pages de publication devient assez lent lors du traitement et de l'obtention de toutes les API sociales.

5
Webfreak

Oui, les comptes sociaux sont un excellent cas d'utilisation pour l'utilisation de transitoires. En plus du chargement lent des pages, comme vous l'avez mentionné, cela vous évitera de dépasser les limites de l'API si des demandes externes sont effectuées à chaque chargement de page.

Supposons que le cache soit configuré pour 30 minutes et que la vérification de l'expiration du cache ait lieu lorsque les données sont chargées au serveur frontal, puis toutes les 30 minutes, le temps de chargement d'une page sera plus lent jusqu'à ce que les données soient restaurées. mis en cache. Parmi les solutions possibles, citons l'exécution de l'actualisation via le travail cron de manière à ne pas nuire à l'expérience utilisateur, ou la vérification de la validité du cache sur un autre point d'ancrage, tel que post-édition/enregistrement, si le site est super actif et qu'un nouveau contenu est affiché tout au long du processus. jour, bien que cela puisse rendre les comptes sociaux un peu fades si, à certaines périodes, aucun nouveau contenu n’est produit.

Vous pouvez également calculer et charger les comptes via AJAX pour que la page se charge, puis que les comptes sociaux soient importés, ce qui élimine complètement le problème du temps de chargement de l'utilisateur frontal.

Je recommande fortement d'utiliser le plug-in TLC Transients de Mark Jaquith. Il permet une expiration logicielle et une mise à jour en arrière-plan (en effectuant l'extraction de données sur le crochet d'arrêt), il effectue également le verrouillage, ce qui vous épargnera dans des conditions de course. Exemple: le cache a expiré et 10 000 personnes ont consulté votre page en même temps; elles déclencheront tous des processus pour recalculer le nombre et le mettre en cache jusqu'à la mise en cache des données. Le verrouillage vérifiera si quelque chose d'autre tente déjà de le calculer et empêchera également le prochain type de calculer. J'ai déjà eu 30 000 demandes à cause de conditions de course.

7
TomHarrigan