PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : flock(), caching und simultaner Zugriff


r0w
30.12.2005, 03:07:30
Hi
Ich versuche grade ein caching system zu schreiben um mich mal wieder an die PHP-Syntax zu gewöhnen. Nun stehe ich aber vor einem Problem. Kleine Erläuterung zu dem was ich jetzt hab:

Wenn jetzt zum Beispiel ein Skript ausgeführt wird, überprüft es zuerst ob die cache datei (cache/datei.html) vorhanden ist. Wenn ja wird der Inhalt aus der Datei geladen und alles ist gut. Bis dahin ja auch nicht so kompliziert. Wenn jetzt die Datei nicht existiert oder neu gecached werden soll öffnet das Skript die Datei und sperrt sie mit flock();
Was passiert wenn in der Zeit, in der der Inhalt in die Cache Datei geschrieben wird ein weiterer Zugriff stattfindet? Dann sollte es ja nicht klappen Inhalt zu schreiben und es wird kein Inhalt gefunden (weil die datei für schreibzugriffe gesperrt ist, aber noch gelesen werden kann, die Datei aber keinen Inhalt hat).
Kann man irgendwie überprüfen ob die Datei gesperrt wurde?
Wie kann man die Datei sperren, wenn das Dateisystem flock(); nicht unterstützt?

[edit]
Hmpf. Kurz nach dem Schreiben hab ich mir die Frage nach dem Überprüfen selbst beantwortet...
Die 2. Frage steht immer noch mit dem sperren wenn das Dateisystem flock() nicht unterstützt