![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 426 Pomógł: 1 Dołączył: 2.10.2005 Ostrzeżenie: (0%) ![]() ![]() |
Witam
Mam pytanie odnośnie zapisywania danych do pliku, mam wykonana biblioteke cachujaca zapytania z bazy danych do pliku. Użyłem w niej funkcji file_put_contents do zapisu danych do pliku. Problem pojawia się gdy 1 plik cache chce stworzyć kilkudziesięciu użytkowników (bardzo duży ruch na stronie), wtedy strona strasznie spowalnia do czasu aż cache w końcu zostanie utworzony. Czy funkcja file_put_contents używa blokowania plików do zapisu jak f_lock(LOCK_EX)? Jeśli nie to czy przechodząc na standardowe funkcje fopen, fwrite,flock problem zostanie rozwiązany? Pozdrawiam |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 74 Pomógł: 4 Dołączył: 7.03.2008 Ostrzeżenie: (0%) ![]() ![]() |
flock() powinno zalatwic sprawe
po prostu zanim wykonasz akcje cache sprawdz czy plik nie ma aktywnego lock, jesli ma to znaczy ze cache sie juz odswieza i wyswietlaj strone bez cache lub ze starego pliku cache jesli czytanie z pliku bedzie mozliwe, potestuj w manualu php masz przyklad dokladnie taki o jaki pytasz, mialem podobny problem i to bardzo pomoglo, dodatkowo mozesz pomyslec nad zmiana sposobu cachowania, zamiast cachowania wynikow sql mozna cachowac caly buffor (ob_start) dla niezalogowanych uzytkownikow poniewaz dla nich strona bedzie wygladac identycznie, natomiast dla zalogowanych mozesz cachowac tylko wybrane elementy strony czy to przez wyniki sql czy tez przez cachowanie widokow sposob cachowania zawsze nalezy dobrac do struktury strony, nie ma zlotego srodka |
|
|
![]() ![]() |
![]() |
Aktualny czas: 6.10.2025 - 19:33 |