Michael - Hannover: Dateien -> gleichzeitiges lesen/schreiben verhindern

Beitrag lesen

Hallo !

ich möchte innerhalb eines PHP Scriptes ein Fehlerprotokoll erstellen/speichern

um user aborts zu ignorieren, geschieht dies vorerst vor jeglicher Ausgabe an den Client

mein Problem/Frage

Wie kann ich effektiv und unter Berücksichtigung von XXXXX Prozessen eine "sichere" und korrekte Speicherung der Daten gewährleisten ?

meine eigenen Ansätze dazu (Umsetzung in PHP-Befehle später)

Datei öffnen
 Datei versuchen zu sperren (exkl.Lock + LOCK_NB)
 WENN erfolgreich
    schreiben
    Datei schließen
 SONST
   SOLANGE Sperren nicht erfolgreich (idealerweise max.5 Sekunden(?))
     Versuchen zu sperren
     WENN erfolgreich
       schreiben
       Datei schließen
     ENDE
   ENDE
   --> falls das auch nicht geklappt hat, randomized temp.file
       anlegen, wobei hier dann wieder zu Beginn des Codings
       die Existenz eines solchen Files abgefragt werden müßte
       (unique Datei-Endung vorausgesetzt)
       dieses wird dann exklusiv geöffnet(fopen($temp.file,"r+"))
       /gesperrt (Wartezeit einkalkulieren) Inhalt ins richtige
       File portiert,temp.file gelöscht
 ENDE

geht das auch effizienter ? und vor allem schneller ?

...wahrscheinlich ist es ab einer best. Menge der laufenden Prozesse nicht mehr möglich, die Datei-Änderung ohne korruption vorzunehmen oder ?

oder GENERELL ein randomized temp.file anlegen und per Cronjobs zusammenführen und danach löschen