Cache guzzle requestu pomocí call funkce

Isigarek
Člen | 74
+
0
-

Dobrý den,
dělám klient webovku na nette a používám hodně REST API k nasávání dat z jiné větší administrace a podobně. Kvůli rychlosti aktuálně cachuju každý request, který provedu a opravdu je to extrémně znát na rychlosti aplikace jenže mám problém s invalidováním body tohoto requestu. I když změním něco v body tak nette automaticky zvolí cache soubor místo nového requestu a musí změnit všechno. Nějaká rada?

CZechBoY
Člen | 3608
+
0
-

Těžko říct jak to cachuješ takže těžko radit jak to invalidovat ;-) Ideální by bylo kdyby api bylo rychlý a cachovalo+invalidovalo se samo.

Isigarek
Člen | 74
+
0
-

Funguje to uplně jednoduše → pošlu request ale před tím než ho pošlu tak vyvolám funkci $this->cache->call( ) viz dokumentace, která zavolá tu funkci.

Lukes
Silver Partner | 68
+
0
-

Kolega nejspíš myslel, že je potřeba se zamyslet v jakých případech cache invalidovat.

  • Po uložení změny
  • Po uplynutí doby
  • Po změně souboru

Ono to hodně záleží na povaze dat, čili kdy kde jak kdo a jak často je mění.

GEpic
Člen | 562
+
0
-

Jak píšou kluci, na toto není jednoduchá odpověď. Ale hlavně, co taháš za data že je potřebujes cachovat? Máme aplikace které komunikují s několika API a většinou jsou to jednotky milisekund. Akorát ukládáme výsledky dotazů do paměti, pokud se více komponent táže na ta stejná data. Taktéž, pokud je to možné, je občas dobré data z API tahat asynchroně pomocí JS (např. data do různých grafů, atp.)

Editoval GEpic (14. 8. 2018 18:16)