Autor Zpráva
Radek22
Profil
Ahoj,

pátral jsem po cachování v PHP a narazil jsem na tento algoritmus:


if ( file_exist("aktiality.cache") ) {
include ( "aktuality.cache" );
} else {
$cachefp = fopen( "aktuality_tmp.cache", "w" );
ob_start();
}

tady bude HTML kód

if ( $cachefp ) {
$file = ob_get_contents();
fwrite( $cachefp, $file );
fclose( $cachefp );
rename( "aktuality_tmp.cache", "aktuality.cache");
ob_end_flush();
}


jediný problém tohoto algoritmu je ten, že když "aktuality.cache" nebude existovat a na stránku
příjdou 2 uživatelé zároveň, tak každý začne vytvářet dočasný soubor "aktiality_tmp.cache", což
správnost nijak neovlivní, ale je to zbytečná režie.

Má někdo nějaký nápad, jak by se to dalo vyřešit? Mně napadlo, že bych mohl nějak zjistit, jestli
je ten dočasný soubor otevřený a pokud ano, tak bych ten druhý proces dočasný soubor už nevytvářel
a jen by si vygeneroval stránku.

A dá se nějak zjistit doba, za kterou mi server vrátí požadovanou stránku?
Kcko
Profil
Nebude lepsi pokazde kdyz pridas novou aktualitu tak pregenerovat soubor ktery pote vzdy vkladas?

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0