Nous avons cette API à notre système de commande dans notre Call-Center, avec lequel notre commande en ligne communique. Mais beaucoup de demandes et de réponses sont identiques, plus ou moins statiques - mais le serveur API les génère, il ne fournit pas seulement un fichier statique. Que suggérez-vous comme la meilleure approche pour mettre en cache des réponses XML? J'ai jeté un coup d'oeil à Zend_Cache. Mais d'après ce que je comprends, je pense que c'est client/session, je voudrais que tous les clients profitent du même cache.Caching réponses XML
Chaque pageview fait une demande de prix pour le contenu du panier, quelle mise en cache proposez-vous pour cela. Je pense que Zend_Cache pourrait peut-être entrer en jeu ici? Fondamentalement, ce dont j'ai besoin, c'est de prendre la charge du serveur API, donc il a plus de ressources pour répondre aux demandes de prix, et d'autres demandes qui changent par demande.
Mise à jour: 13. Dec. 2010 10,45
Demande calendrier
2010-12-10T14:43:46+01:00 DEBUG (7): XML GET /ccstatus [0.054742097854614]
2010-12-10T14:43:46+01:00 DEBUG (7): XML GET /storestatus [0.063634157180786]
2010-12-10T14:43:46+01:00 DEBUG (7): XML GET /storestatus [0.062693119049072]
2010-12-10T14:43:46+01:00 DEBUG (7): XML GET /storestatus [0.062756061553955]
2010-12-10T14:43:46+01:00 DEBUG (7): XML GET /storestatus [0.062740087509155]
2010-12-10T14:43:46+01:00 DEBUG (7): XML GET /storelocations [0.065214872360229]
2010-12-10T14:43:46+01:00 DEBUG (7): XML GET /coupons [0.070861101150513]
2010-12-10T14:43:47+01:00 DEBUG (7): XML GET /packagedeals [0.51115489006042]
2010-12-10T14:43:47+01:00 DEBUG (7): XML POST /price [0.065691947937012]
2010-12-10T14:43:47+01:00 DEBUG (7): XML GET /pizzas [0.10685706138611]
2010-12-10T14:43:47+01:00 DEBUG (7): XML GET /bevtypes [0.059874057769775]
2010-12-10T14:43:47+01:00 DEBUG (7): XML GET /bevsizes [0.056848049163818]
2010-12-10T14:43:47+01:00 DEBUG (7): XML GET /items [0.070401191711426]
2010-12-10T14:43:47+01:00 DEBUG (7): XML GET /storestatus [0.062546014785767]
2010-12-10T14:43:47+01:00 DEBUG (7): XML GET /storestatus [0.063254117965698]
2010-12-10T14:43:47+01:00 DEBUG (7): XML GET /storestatus [0.062647104263306]
2010-12-10T14:43:47+01:00 DEBUG (7): XML GET /storestatus [0.062632083892822]
2010-12-10T14:43:47+01:00 DEBUG (7): XML GET /storestatus [0.062486886978149]
2010-12-10T14:43:47+01:00 DEBUG (7): XML GET /items [0.059072017669678]
2010-12-10T14:43:47+01:00 DEBUG (7): XML GET /storestatus [0.062618970870972]
2010-12-10T14:43:48+01:00 DEBUG (7): XML POST /price [0.063409805297852]
Ce sont les demandes d'un seul PageView, montrant une page de commandes de côté, et le panier contient 2 articles.
En fonction de ces périodes, pensez-vous que je vais obtenir une différence considérable en mettant en cache les données? Ces temps sont sans charge, donc en cas de charge élevée, la mise en cache pourrait probablement être utile.
Bonnes pensées :) A propos de la demande de prix, je pensais enregistrer la dernière réponse dans la session, et seulement mettre à jour/rafraîchir la réponse si des modifications sont apportées à la contenu du panier. Mais vous avez probablement raison, je pourrais probablement stocker les demandes plus ou moins statiques dans un fichier. J'ai mis à jour ma publication initiale avec une liste de la manière dont chaque demande est enregistrée pour obtenir de l'API. – Phliplip
Droit, si le panier n'a pas changé, pas besoin de faire une nouvelle demande de prix. Bonne prise. ;-) –
J'ai accepté votre réponse, parce que je suis allé avec le fichier Zend_Cache et un travail cron pour mettre à jour le cache. Nous avons immédiatement vu une baisse de 50% des temps de chargement sur la commande en ligne :) Pas de méthode scientifique, juste en cliquant sur le lien un compte secondes jusqu'à ce que la page a été chargée. – Phliplip