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 ::

Fortgeschrittene CSS-Techniken

Fortgeschrittene CSS-Techniken 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 Grundlagen

PHP Grundlagen Hier kann über grundlegende Probleme oder Anfängerschwierigkeiten diskutiert werden

Antwort
 
Themen-Optionen Ansicht
  #31  
Alt 27.02.2006, 14:27:40
Benutzerbild von meikel (†)
meikel (†) meikel (†) ist offline
SELFPHP Guru
 
Registriert seit: Dec 2003
Ort: Erfurt
Alter: 75
Beiträge: 4.001
AW: fopen() ohne Überschreiben

Zitat:
Zitat von Heppi
Sollte ich anfangen Lotto zu spielen?
Wieso anfangen? Du tust es ja schon.
Mit Zitat antworten
  #32  
Alt 27.02.2006, 14:28:04
Giz Giz ist offline
Junior Member
 
Registriert seit: Apr 2005
Beiträge: 309
AW: fopen() ohne Überschreiben

Zitat:
Zitat von meikel
Unter Volllast klappt das schon mal. Wenn sich so 100-150 User auf einen Schlag ins Gästebuch eintragen wollen, da is die Hölle los...
Und muss ich dann auch bei der Anhängen-Variante mit Problemen rechnen?
Zitat:
Zitat von meikel
Weil die Datei Schrott ist, wenn zeitgleich zwei User etwas eintragen wollen.
Die Frage warum nicht bezog sich eigentlich auf Heppi, weil er es nicht mit Anhängen der Daten probiert....

Aber die Frage wäre ja, ob das das Problem lösen kann?!!!
Wenn ja...
Zitat:
Zitat von Heppi
Hab jetzt halt das Problem, daß ich schon ewig viele log-Files habe, welche ich dann von Hand umdrehen müsste.
Dafür könntest Du Dir doch relativ einfach ein Skript schreiben... oder Du machst eben in Zukunft für das Lesen der LOGs ein Unterschied, ob die Datei z.B. vor dem 01.März 2006 erzeugt wurde oder danach?!
Mit Zitat antworten
  #33  
Alt 27.02.2006, 14:32:57
Benutzerbild von meikel (†)
meikel (†) meikel (†) ist offline
SELFPHP Guru
 
Registriert seit: Dec 2003
Ort: Erfurt
Alter: 75
Beiträge: 4.001
AW: fopen() ohne Überschreiben

Zitat:
Zitat von Heppi
Ja, schon klar. Aber wie wird's gemacht, daß einer hinter dem anderen bleibt?
Darauf paßt der Server auf. Eine SQL Abfrage wird nicht sofort ins File sondern erst mal in die Warteschlange gestellt. Ein anderer Prozeß arbeitet die Warteschlange dann der Reihe nach ab.

MySQL verwaltet die Tabellen in sogenannten Pages, die der Reihe nach vollgeschrieben werden. Gelöscht wird nicht sondern nur ein Flag gesetzt. Deshalb sollte man Tabellen, in denen häufig gelöscht oder geändert wird, mit OPTIMIZE behandeln, damit die Karteileichen physikalisch gelöscht werden.
Mit Zitat antworten
  #34  
Alt 27.02.2006, 14:42:24
Benutzerbild von meikel (†)
meikel (†) meikel (†) ist offline
SELFPHP Guru
 
Registriert seit: Dec 2003
Ort: Erfurt
Alter: 75
Beiträge: 4.001
AW: fopen() ohne Überschreiben

Zitat:
Zitat von Giz
Und muss ich dann auch bei der Anhängen-Variante mit Problemen rechnen?
Ich habe da aufgrund negativer Erfahrungen ein ungutes Gefühl.

Der MySQL Server regelt zeitgleiche Zugriffe mit einer Queue, der Apache startet stattdessen eine weitere Instanz. Damit weiß User1 nicht, was User2 treibt.

Es wäre ja kein Problem, wenn die Scripte sequentiell abgearbeitet würden. Dann ist User1 fertig bevor User2 dran ist. Aber leider ist es nicht so.
Mit Zitat antworten
  #35  
Alt 27.02.2006, 14:52:53
Giz Giz ist offline
Junior Member
 
Registriert seit: Apr 2005
Beiträge: 309
AW: fopen() ohne Überschreiben

Zitat:
Zitat von meikel
Ich habe da aufgrund negativer Erfahrungen ein ungutes Gefühl.

Der MySQL Server regelt zeitgleiche Zugriffe mit einer Queue, der Apache startet stattdessen eine weitere Instanz. Damit weiß User1 nicht, was User2 treibt.

Es wäre ja kein Problem, wenn die Scripte sequentiell abgearbeitet würden. Dann ist User1 fertig bevor User2 dran ist. Aber leider ist es nicht so.
Bedeutet das, Du verzichtest lieber vollständig auf solche Dateien und arbeitest in allem mit SQL? Ich bin ja gerade am überarbeiten meiner Datenstruktur und scheue mich einfach noch komplett umzusteigen, weil ich es ganz praktisch finde , wenn ich die Daten, die ich gespeichert habe, auch irgendwie als greifbare einzeilne Datei ansehen und ggf. ändern kann.

Aber eigentlich ist das ja auch nicht Sinn solcher Daten...
Mit Zitat antworten
  #36  
Alt 27.02.2006, 14:57:38
Heppi Heppi ist offline
Anfänger
 
Registriert seit: Aug 2003
Ort: Leutkirch im Allgäu
Beiträge: 79
AW: fopen() ohne Überschreiben

Da geht's mir jetzt gleich wie Giz.

Für was gibt's denn die Funktion flock(), wenn die eh nur Bullshit bzw. gar nichts macht?
Mit Zitat antworten
  #37  
Alt 27.02.2006, 15:13:05
Benutzerbild von meikel (†)
meikel (†) meikel (†) ist offline
SELFPHP Guru
 
Registriert seit: Dec 2003
Ort: Erfurt
Alter: 75
Beiträge: 4.001
AW: fopen() ohne Überschreiben

Zitat:
Zitat von Giz
Bedeutet das, Du verzichtest lieber vollständig auf solche Dateien und arbeitest in allem mit SQL?
Ich verwende SQL da, wo es sinnvoll ist. Und sinnvoll ist ein DBMS bei solchen Anwendungen, bei denen mehr als einer schreiben darf u/o bei denen sortiert, gerechnet, selektiert, geändert, eingefügt usw. werden muß.
Mit Zitat antworten
  #38  
Alt 27.02.2006, 15:17:02
Giz Giz ist offline
Junior Member
 
Registriert seit: Apr 2005
Beiträge: 309
AW: fopen() ohne Überschreiben

Zitat:
Zitat von meikel
Ich verwende SQL da, wo es sinnvoll ist. Und sinnvoll ist ein DBMS bei solchen Anwendungen, bei denen mehr als einer schreiben darf u/o bei denen sortiert, gerechnet, selektiert, geändert, eingefügt usw. werden muß.
Das werde ich mal in meine Überlegungen mit einbeziehen... ;)
Mit Zitat antworten
  #39  
Alt 27.02.2006, 15:19:20
Giz Giz ist offline
Junior Member
 
Registriert seit: Apr 2005
Beiträge: 309
AW: fopen() ohne Überschreiben

Zitat:
Zitat von Heppi
Da geht's mir jetzt gleich wie Giz.

Für was gibt's denn die Funktion flock(), wenn die eh nur Bullshit bzw. gar nichts macht?
Wie es aussieht bietet sich jedenfalls keine vernünftige Lösung an um das Problem zu umgehen, wenn Du nicht umsteigst...
Aber wie gesagt : Mir ist in zwei Jahren nicht einmal etwas abhanden gekommen...
Mit Zitat antworten
  #40  
Alt 27.02.2006, 20:35:19
Heppi Heppi ist offline
Anfänger
 
Registriert seit: Aug 2003
Ort: Leutkirch im Allgäu
Beiträge: 79
AW: fopen() ohne Überschreiben

So, ich mal wieder. In der Hoffnung, daß ich niemanden nerve.

Hab jetzt mal das folgende versucht. Erstmal zwei Source-Files.

PHP-Code:
// test1.php
<?php
    $log_datei 
fopen('log.dat''a');
    
flock($log_dateiLOCK_EX);
    
fputs($log_datei"test1: ".time()."\r\n");
    
sleep(20);
    
fputs($log_datei"test1: ".time()."\r\n");
    
flock($log_dateiLOCK_UN);
    
fclose($log_datei);
?>
PHP-Code:
// test2.php
<?php
    $beginn 
"test2: ".time()."\r\n";
    
$log_datei fopen('log.dat''a');
    
flock($log_dateiLOCK_EX);
    
fputs($log_datei$beginn."test2: ".time()."\r\n");
    
flock($log_dateiLOCK_UN);
    
fclose($log_datei);
?>
Ich rufe test1.php auf, welche eine Datei öffnet, sperrt, einen Timestamp schreibt, 20 Sekunden wartet, wieder einen Timestamp schreibt und anschließend die Datei wieder freigibt. In dieser Zeit rufe ich test2.php auf.
Dort speichere ich die Startzeit des Skripts und versuche dann ebenfalls in log.dat zu schreiben. Dies mißlingt und das Skript wartet bis die Datei von test1.php wieder freigegeben wurde. Ergebnis:

PHP-Code:
test11141064733
test1
1141064753
test2
1141064735
test2
1141064753 
Also, müßte das ganze doch so funktionieren, oder!?
Mit Zitat antworten
Antwort


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen
Ansicht

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

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
fopen Parameter Franzx PHP Grundlagen 5 19.01.2006 12:30:02
fopen() - Sicherheitslücke? Gweilo Off Topic Area 2 18.01.2005 18:55:43
fopen mit url gibt fehler ?! kruschde PHP für Fortgeschrittene und Experten 3 14.12.2004 16:02:28
Probleme mit fopen andi_g PHP für Fortgeschrittene und Experten 0 13.03.2004 18:02:09
Problem mit Array und fopen() DeMaephis PHP für Fortgeschrittene und Experten 1 07.12.2002 12:50:58


Alle Zeitangaben in WEZ +2. Es ist jetzt 13:20:42 Uhr.


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


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