SELFPHP: Version 5.8.2 Befehlsreferenz - Tutorial – Kochbuch – Forum für PHP Einsteiger und professionelle Entwickler

SELFPHP


Professional CronJob-Service

Suche



CronJob-Service    
bei SELFPHP mit ...



 + minütlichen Aufrufen
 + eigenem Crontab Eintrag
 + unbegrenzten CronJobs
 + Statistiken
 + Beispielaufrufen
 + Control-Bereich

Führen Sie mit den CronJobs von SELFPHP zeitgesteuert Programme auf Ihrem Server aus. Weitere Infos



:: Buchempfehlung ::

Handbuch der Java-Programmierung

Handbuch der Java-Programmierung zur Buchempfehlung
 

:: Anbieterverzeichnis ::

Globale Branchen

Informieren Sie sich über ausgewählte Unternehmen im Anbieterverzeichnis von SELFPHP  

 

:: Newsletter ::

Abonnieren Sie hier den kostenlosen SELFPHP Newsletter!

Vorname: 
Name:
E-Mail:
 
 

Zurück   PHP Forum > SELFPHP > PHP für Fortgeschrittene und Experten
Hilfe Community Kalender Heutige Beiträge Suchen

PHP für Fortgeschrittene und Experten Fortgeschrittene und Experten können hier über ihre Probleme und Bedenken talken

Antwort
 
Themen-Optionen Ansicht
  #1  
Alt 11.07.2002, 18:31:33
techilla techilla ist offline
Anfänger
 
Registriert seit: Jul 2002
Ort: Bamberg
Beiträge: 3
Textdateien schreiben

Hallo,

habe vor in einem Projekt mehrere Benutzer meiner Seite in eine Textdatei schreiben zu lassen (ähnlich einem Gästebuch). Hat irgendjemand Ahnung inwieweit es da zu Problemen kommen kann, bzw. wie es sich auswirkt, wenn mehrere Leute gleichzeitig versuchen zu schreiben.

Meine Lösung wäre einen Token zu setzen wenn jemand das Editieren beginnt und dann den Token wieder freizugeben wenn derjenige mit editieren fertig ist bzw. nach einem TimeOut. Das Problem ist nur, dass der TimeOut halt auch Leute ausblockt die schreiben wollen, wenn der Vorgänger das Editieren nur abgebrochen hat.

Mit MySQL will ich es nicht lösen, außerdem bin ich mir nicht ganz sicher wie der Transaktionsschutz da gelöst ist.

Danke vorab....

Techilla
Mit Zitat antworten
  #2  
Alt 11.07.2002, 20:55:21
c4 c4 ist offline
SELFPHP Guru
 
Registriert seit: Jul 2002
Ort: Oberursel
Alter: 54
Beiträge: 4.748
Das Problem wird sich als solches gar nicht ergeben.
Der Dateizugriff (und damit die kurzzeitige Sperrung für andere User) erfolgt doch nur in dem (kurzen) Moment, in dem die Datei gespeichert wird. Die Wahrscheinlichkeit, dass 2 oder mehr Leute im selben Augenblick schreibend auf die Datei zugreifen wollen ist viel zu gering, als das man sich darum sorgen machen müsste.

Hast Du natürlich täglich mehrere 10.000 Besucher auf Deiner Seite solltest Du Dich wohl doch für MySQL entscheiden. ;)
__________________
sic!
--> http://dbCF.de/
Mit Zitat antworten
  #3  
Alt 11.07.2002, 21:19:45
techilla techilla ist offline
Anfänger
 
Registriert seit: Jul 2002
Ort: Bamberg
Beiträge: 3
Danke für die schnelle Antwort. Hat irgend jemand Werte wann ein gleichzeitiger Zugriff kritsch werden kann, bzw. was passiert, wenn 1 User gerade schreibt und z.B. 30 andere User gerade versuchen die selbe Datei zu lesen.
Mit Zitat antworten
  #4  
Alt 11.07.2002, 21:39:34
c4 c4 ist offline
SELFPHP Guru
 
Registriert seit: Jul 2002
Ort: Oberursel
Alter: 54
Beiträge: 4.748
Zitat:
...1 User gerade schreibt und z.B. 30 andere User gerade versuchen die selbe Datei zu lesen.
Wow, Du scheinst ja was großes vorzuhaben.

Ich hab mal probeweise das folgende erstellt:
PHP-Code:
// file1.php
<?
 $file=fopen("file.tst","a");
  for ($i=0; $i<50000; $i++)
   { fwrite($file,"$i
"); }
 fclose($file);
?>

// file2.php
<?
 for ($i=0; $i<50000; $i++)
  { echo join("<br>",file("file.tst")); }
?>
Wenn man beides paralell laufen lässt kommt es zu keinerlei Fehlermeldungen. Okay, es kommt doch eine: "Fatal error: Maximum execution time of 30 seconds exceeded in [Pfad]inetpubfile2.php on line 3". ;)

Scheinst Dir also wirklich keine Sorgen machen zu müssen.
__________________
sic!
--> http://dbCF.de/
Mit Zitat antworten
  #5  
Alt 11.07.2002, 23:12:39
techilla techilla ist offline
Anfänger
 
Registriert seit: Jul 2002
Ort: Bamberg
Beiträge: 3
Danke für die Antwort und den Aufwand. Der Tip 2 Skripte zu schreiben und diese parallel laufen zu lassen ist genau richtig um die Performance zu testen. Da hätte ich auch selbst drauf kommen können.

Also nochmal vielen Dank!!!!
Mit Zitat antworten
  #6  
Alt 12.07.2002, 10:04:49
Benutzerbild von Matt
Matt Matt ist offline
Member
 
Registriert seit: Mar 2002
Ort: Port 80, localhost-city, 127/0/0/1
Beiträge: 878
es gibt allerdings auch die möglichkeit, einen schreibschutz einzubauen:
schau dir mal die funktion
www.php.net/flock an, die gibt es zu dem zweck, du musst sie nachdem du fertig bist allerdings wieder unlocken PLUS (wichtig!) musst du umbedingt bevor du flock ausgeführt hast ignore_user_abort ausführen, weil sonst kann es passieren, das der user grad in dem moment auf stop drückt, wo du das file geschützt hast. dann wird das script abgebrochen und dein file bleibt für alle zeiten gesperrt. mit ignore_user_Abort wird das script trotzdem komplett ausgeführt...
Mit Zitat antworten
Antwort


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind aus.
[IMG] Code ist aus.
HTML-Code ist aus.

Gehe zu


Alle Zeitangaben in WEZ +2. Es ist jetzt 12:37:22 Uhr.


Powered by vBulletin® Version 3.8.3 (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.


© 2001-2024 E-Mail SELFPHP OHG, info@selfphp.deImpressumKontakt