Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] Cache zapytań HTTP odświeżane co 5 minut
Forum PHP.pl > Forum > Przedszkole
viperon
Działam na Joomli 1.5. Na jednej z podstron umieściłem listę stron, które są odpytywane za pomocą metody GET czy działają, po czym zwracany jest wynik użytkownikowi. Cały czas wyniki pokazywały się na żywo, co zajmowało kilkanaście sekund, ale okazuje się, że taka metoda za bardzo obciąża serwer. W związku z tym pomyślałem o cache, który trzymałby wyniki przez 5 minut, potem pobierał nowe dane o działaniu serwerów i znowu trzymało je 5 minut. Przekopałem Google, w którym albo mowa o zapytaniach SQL, albo o cookies i sesjach, jednak w moim przypadku nic takiego nie ma miejsca. Jak to najlepiej rozwiązać? Poniżej podaję fragment gotowego kodu odpowiedzialnego za odpytywanie stron.

CODE

$live = "/status/live.gif";
$dead = "/status/dead.gif";

$link = $_GET['link'].":";
$s_link = str_replace("::", ":", $link);
list($addr,$port)= explode (':',"$s_link");
if (empty($port)){
$port = 80;
}

$churl = @fsockopen(server($addr), $port, $errno, $errstr, 20);
if (!$churl){
//echo $errstr;
header("Location: $dead");
}
else {
header("Location: $live");
}
function server($addr){
if(strstr($addr,"/")){$addr = substr($addr, 0, strpos($addr, "/"));}
return $addr;
}
?>
sowiq
Zadania CRON + zapis (do bazy albo pliku)
zegarek84
jeśli z CRON'em to wchodź z jakimś parametrem by wiedzieć że to cron lub urzyj całkiem innego skryptu tylko dla cron'a i aktualizacji danych - a dla urzytkowników tylko odczyt tych danych....

jesli opcja że to urzytkownicy aktualizują to w pierwszej kolejności z bazy danych/pliku zczytujesz wartość i sprawdzasz czy ta wartość jest na tyle aktualna na ile chcesz - jeśli tak to wyświetlasz zawartość danych i nie sprawdzasz czy strony działają/przerywasz działąnie skryptu - jeśli zaś dane są nie aktualne to pobierasz aktualną wartość sprawdzając strony, wyświetlasz urzytkownikowi i zapisujesz do bazy/pliku aktualne wartości - można w pierw zapisać a potem wyświetlić ale ;p....
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.