![]() |
![]() |
![]()
Post
#1
|
|
![]() Grupa: Zarejestrowani Postów: 594 Pomógł: 66 Dołączył: 22.02.2008 Skąd: Dublin Ostrzeżenie: (0%) ![]() ![]() |
Witam,
Na wstepie chce sie przywitac. Problem pojawia sie kiedy dostep do pliku ma wiecej niz jeden user w tym samym momencie (nie czesto to jest ale zawsze moze byc a kiedys juz tak mialam).Za przyklad moze posluzyc nam licznik ktory zostanie wtedy wyzerowany. Ktos ma jakis pomysl na to ![]() -------------------- |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 226 Pomógł: 61 Dołączył: 20.08.2010 Ostrzeżenie: (0%) ![]() ![]() |
Cytat Nic nie chce osiagnac tylko obejsc blad ktorym jest wariowanie parsera poniewaz jesli dostep do pliku nastepuje dwukrotnie (i tutaj nie pomoze flock uwierz mi) wlasnie parser glupieje i domyslnie wstawia 0. Widzę, że cie nie przekonam, że flock załatwi sprawę. W takim razie sama będziesz musiała to sprawdzić. Użyj ApacheBench - fajne narzędzie do sprawdzania jak zachowuje się skrypt pod obciążeniem, dostarczane razem z serwerem Apache (ab.exe w folderze bin). Zasymuluj 100 użytkowników wykonujących przynajmniej 50000 rządań takim poleceniem Kod ab.exe -n 50000 -c 100 localhost/test_licznika.php Przetestuj tym sposobem kod z forum KS, oraz mój kod:
i sprawdź jaka liczba pojawi się w pliku licznik.txt Jeśli kod z funkcją file_put_contents( "plik.txt", $wartosc, LOCK_EX ) nie daje poprawnego wyniku, to znaczy, że funkcja ta została źle napisana (Blokada jest nakładana przed zapisem, ale po wyczyszczeniu zawartości pliku, więc nie należy na niej polegać w 100%. Cóż, uroki PHP...) -------------------- |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 28.06.2025 - 06:46 |