![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 7 Pomógł: 0 Dołączył: 29.11.2004 Ostrzeżenie: (0%) ![]() ![]() |
Witam wszystkich.
Napewno wielu z Was slyszalo o niezawodnosci funkcji flock(), tak samo jak i ja. Niestety w praktyce sprawa wyglada zupelnie inaczej. Przy dosc duzym obciazeniu - rzedu 200 uzytkownikow na sekunde - funkcja ta poprostu odpusza a efektem tego jest usuwanie zawartosci blokowanych plikow lub ich czesciowa destrukcja. Oto kod ktory wywoluje ta sytuacje:
W zwiazku z tym mam pytanie. Czy jest mozliwe napisanie funkcji ktora bedzie dawala calkowita pewnosc ze dane nie zostana utracone ? Serdecznie dziekuje za odpowiedz i pozdrawiam. |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 793 Pomógł: 32 Dołączył: 23.11.2006 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
Oczywiście nie tylko do zapisu trzeba tak zrobić ale również do odczytu, aby krzaczki nie wyskakiwały (IMG:http://forum.php.pl/style_emoticons/default/biggrin.gif)
Na prośbę załączam z blokowaniem, od razu mówię że nie spr. więc przejrzeć i przetestować, oraz jest kwestia file() bo przecież on również odczytuje z pliku i może się to nie powieść wtedy zwraca false. Nie miałem doświadczenia z tak obciążonymi systemami, a manual nic nie mówi na temat blokowania pliku bo przecież go nie otwieramy... tak jak jest teraz powinno już nie być kłopotów, ale bym radził dorzucić jakiś warunek wyjścia z tych pętli, bo jak się zrobi tak że zablokuje plik do zapisu i będzie się próbowało zrobić np. file() to się po prostu zawiesi (jeśli nie zwolni tego do zapisu). Mamnadzieje że to już będzie działać sprawnie, ale nie daję żadnej gwarancji.
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 6.10.2025 - 03:21 |