![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 2 Pomógł: 0 Dołączył: 5.02.2009 Ostrzeżenie: (0%) ![]() ![]() |
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; } ?> |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 1 890 Pomógł: 339 Dołączył: 14.12.2006 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 1 332 Pomógł: 294 Dołączył: 12.10.2008 Skąd: Olkusz Ostrzeżenie: (0%) ![]() ![]() |
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.... -------------------- Jeśli twoja ręka rusza do przodu powstrzymaj swój gniew; gdy wyprzedza cię twój gniew - wycofaj rękę.
|
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 8.07.2025 - 05:14 |