Jestem nowy w PHP. Rozumiem, że mogę użyć flock()
, aby zablokować plik i uniknąć warunków wyścigu, gdy dwóch użytkowników dojdzie do tego samego pliku php, dodając zawartość do pliku z blokadą.Jak uniknąć zakleszczeń plików podczas awarii procesu PHP/serwera?
Co się stanie, jeśli proces php ulegnie awarii? Co stanie się z następnym użytkownikiem czekającym na zablokowanie pliku? Co się stanie, jeśli serwer się zawiesza (ktoś wyciąga wtyczkę)? Czy zamek jest automatycznie zwolniony? Czy plik pozostanie zablokowany po ponownym uruchomieniu serwera?
Czy PHP sprawdza, czy takie sytuacje krytyczne (tzn. Blokada nie została jawnie zwolniona) są poprawnie obsługiwane? Jeśli nie, jak radzić sobie z takimi sytuacjami? Jak odzyskać z nich?