Rozsáhlá cache – pomalé čištění

Kajda23
Člen | 41
+
0
-

Ahoj,
řeším problém:

Na eshopu vytvářím exporty na vyhledávače zboží, které jsou značně rozsáhlé. Generování onthefly je značně náročná operace jak časově, tak paměťově (jde o vyšší desítky tisíc záznamů), tzn. je to už neúnosné. Generování cronem zase velmi rychle zastarává (je tam dost pohybu). Pokusil jsem se to řešit cachováním, kdy každou položku samostatně vytvořím, zakešuji a invaliduji na změnu. Generování exportu pak jen pospojuje položky cache, popřípadě načte jen ty invalidované. Odpadá režie vytváření objektů položek i db. Je to rychlé a funguje to.

Problém: cache je značně rozsáhlá. Pro několik různých vyhledávačů zboží to dělá statisíce souborů cache. Používám FileStorage. Až expost jsem zjistil, že FileStorage náhodně? v čase při vytvoření spouští čištění, což je ale problém při běžném procházení webu – v tom případě to trvá neúnosně dlouho a spadne to na time limit.

Hledám tedy řešení. Napadá mě použít jiný storage – pomůže?, popřípadě použít 2× FileStorage – jednou pro běžný provoz, druhý pouze pro exporty – nevím, jestli je to možné – ten druhý bych musel vytvářet ručně? Nebo je to všechno špatně a existuje lepší řešení?

Díky za odpověď.

Kajda23
Člen | 41
+
0
-

Řešením by také mohlo být vypnout čištění. Vlastně by mělo stačit nastavit $gcProbability = 0. Lze udělat v konfiguraci setup PŘED vytvořením nebo bude nutné přerazit to např. vlastní poděděnou implementací FileStorage, kde to upravím?