PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Datei zum schreiben öffnen, prüfen ob nicht gerade geschrieben wird


tekknotrip
10.09.2004, 11:51:41
Hallo Leute,
habe da ein verzwickeltes Problem.

Es bietet jemand Daten an, die man sich ein mal pro Stunde abholen kann. Macht man das öfters, so liefert er keine Daten, sondern nur den Hinweis, dass man nicht öfters zugreifen darf.

Soweit so gut.

Diese daten sind XML Daten, die ich lokal auf dem Server ablege. Dann prüfe ich, wie alt diese Datei ist und wenn älter als eine Stunde, dann soll er sich die neuen Daten holen, speichern und dann parsen.

Nun ist meine Seite nicht gerade wenig besucht und es kommt vor, dass mehrere Leute gleichzeitig darauf zugreifen, so dass vor dem Schreibvorgang die Datei noch älter als eine Stunde ist, die neuen Daten aber gerade abgerufen werden. Nun der der nächste Benutzer (datei noch immer nicht beschrieben) und löst den gleichen Vorgang aus. Diesmal aber mit dem Ergebniss, dass man öfters als eine Stunde zugreift und in das Lokale File keine daten gechrieben werden.


Wie kann ich es nun verhindern, dass wenn die Daten gerade abgeholt werden ein zweiter Zugriff nicht stattfinden darf? Gibt es da eine Möglichkeit?

Für Hilfe wäre ich dankbar!!

gruss, Micha

feuervogel
10.09.2004, 12:04:19
ja, mit flock() (http://www.php.net/flock)

tekknotrip
10.09.2004, 12:52:39
danke :-)