Stabiler Counter - Ständig Zusammenbruch
Julian Hofmann
- perl
Hallo,
folgendes Problem bereitet mir zur Zeit etwas Kopfschmerzen:
Auf meinen Seiten habe ich einen Textcounter. Das Script ist jenes aus Matt's Script Archive wobei ich es soweit verkürzt habe, daß nur noch für eine Seite gezählt wird. Alle wesetlichen Programmteile sind aber noch da. Trotzdem kommt es immer häufiger vor, daß der Counter sich neustartet und von heute auf morgen von 3124 Zugriffen auf 7 "hochzählt" (ca. 50 Aufrufe/Tag). Aber auf bei einem anderen Projekt (ca. 2/Tag) ist jetzt bereits der Counter zurückgesetzt. Hat irgendwer eine Ahnung warum das passieren könnte? Oder noch besser weiß jemand eine Methode/ein Script mit dem das nicht passiert?
Vielen Dank.
Gruß aus Bayreuth
Julian
Hi,
folgendes Problem bereitet mir zur Zeit etwas Kopfschmerzen:
Auf meinen Seiten habe ich einen Textcounter. Das Script ist jenes aus Matt's Script Archive wobei ich es soweit verkürzt habe, daß nur noch für eine Seite gezählt wird. Alle wesetlichen Programmteile sind aber noch da. Trotzdem kommt es immer häufiger vor, daß der Counter sich neustartet und von heute auf morgen von 3124 Zugriffen auf 7 "hochzählt" (ca. 50 Aufrufe/Tag). Aber auf bei einem anderen Projekt (ca. 2/Tag) ist jetzt bereits der Counter zurückgesetzt. Hat irgendwer eine Ahnung warum das passieren könnte? Oder noch besser weiß jemand eine Methode/ein Script mit dem das nicht passiert?
Zitate: "Matt`s scripts are evil".
Matt's Skripte sind allesamt nicht gerade modern sondern noch etwas auf der Perl4-Schiene
und von den Techniken noch nicht so gewachsen: Der Grund für den obigen fehler liegt
darin, daß Matt so gut wie kein Filelocking in seinen Skripten macht.
Folge: Bei gleichzeitigen Zugriff auf eine Datei kommt es zu Fehlern.
Du kannst das Problem entweder selbst leosen indem du Locking einbaust (vorrausgesezt du benutzt einen
UNIX-Rechner), oder du holst dir ein anderen Skript das das hat. (Allerdings musst du damit
rechnen, dass die Suche danach nicht merh so einfach ist bei cgi-resources.com.
Für Locking kannst du unter Perl die Funktion flock() nutzen. Siehe in dem Archiv
nach, wie genau.
Ciao,
Wolfgang