gcProbability ve FileStorage

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
marau
Člen | 50
+
0
-

Zdravím,

chtěl bych se zeptat, z jakého důvodu nette FileStorage implementuje funkci mazání cache na základě náhody? Jedná se o následující kód v konstruktoru FileStorage:

		if (mt_rand() / mt_getrandmax() < self::$gcProbability) {
			$this->clean(array());
		}

Měl jsem problém s náhodným, dlouhým načítání webu a po několika hodinách jsem zjistil, že tato funkce se mi snaží defakto „periodicky“ mazat mojí pracně vybudovanou cache s několika tisící záznamy. Zakomentoval jsem $this->clean(array()); a vše je v pořádku, mě však zajímá, z jakého důvodu tam tato funkce je, jaký má význam?

voda
Člen | 561
+
+1
-

Z pohledu do kódu se jedná o smazání starých souborů (garbage collector). Pokud by se nemazaly, tak ti bude cache furt narůstat. Pokud to trvá dlouho, tak bych nastavil $gcProbability na 0 a promazávání spouštěl cronem ($gcProbability nastaveno na 1);

marau
Člen | 50
+
0
-

Já měl celou dobu za to, že neaktuální soubory se mažou automaticky při expiraci a pokusu o přístup na vyexpirovanou/invalidní cache a on tam ještě figuruje garbage collector, možná by stálo za to dát tuto informaci do hlavičky souboru. Každopádně díky za informaci, budu spouštět cronem.