Sponsored Links |
|
||||
Wenn ich das richtig verstehe erhält das CGI eine Art ID wenn es gestartet wird, und Du möchtest, dass das CGI, wenn es ein zweites Mal aufgerufen wird das vorherige mit der gleichen ID beendet und dann seinen eigenen Lauf fortsetzt.
Wenn ich das so richtig verstanden habe, dann könnte man z.B. in einem Temp-Dir eine Datei mit der ID anlegen und dort die Nummer des Prozesses speichern, der das CGI mit der gegebenen ID ausführt. Wenn nun das zweite CGI eine Datei mit der eigenen ID findet, dann kann dieses über die Prozess-ID das erste CGI beenden (z.B. per kill -9) und seine eigene Prozess-ID dort hineinschreiben und dann normal weitermachen. Eine Lösung via Apache fällt mir nicht ein. |
Sponsored Links |
|
||||
Läuft unter win2k/xp.
Nein, anscheinend beendet der Apache genau diesen ersten Aufruf und läßt den zweiten fertig laufen. Es beeinflußt nicht andere Anfragen mit dem gleichen Programm. Filtert ein Apache mehrfache identische abfragen ? |
|
||||
Ach so, ich dachte es geht genau darum den ersten Aufruf beenden zu wollen.
Mir ist nicht bekannt, dass ein laufender Prozess abgebrochen wird, wenn ein 2. identischer Request eintrifft, würde imo auch keinen Sinn ergeben, da ansonsten stark besuchte Seiten ja ständig Probleme haben dürften. Existiert diese Datei nur momentan zu Debug-Zwecken, oder wird diese immer verwendet? Kann es vielleicht sein, dass der 2. Prozess irgendwas verändert, so dass beim ersten Prozess ein Fehler verursacht wird und somit abbricht? Vielleicht setzt der 2. Prozess einen flock, womit der erste nicht rechnet, und dadurch beendet wird? |
|
||||
Vermutlich kollidiert das irgendwo und das erste Programm haut es raus.
Ich habe aber an Stellen wo es knallen könnte (zB fopen()), entsprechende Fehlermeldungen. Von der Logik her macht's der Indianer ja richtig ... |
|
||||
Ich glaub', ich habe das Problem noch nicht erkannt.
Z.B. verstehe ich nicht, warum es korrekt sein sollte, dass der Apache einen vorherigen Request abbricht, nur, weil es einen anderen, identischen Request gibt. Selbst wenn der vom gleichen Client zur gleichen Zeit kommt, kann es doch sein, dass genau das gewünscht ist. Der Apache sollte doch eigentlich für den zweiten Request einen eigenen Prozess starten und die beiden laufen parallel ab. |
|
||||
Es gibt keine identischen Requests, zwei Requests sind immer unterschiedlich.
Ich vermute du meinst mit identisch, dass bei dir im Programm der gleiche Timestamp benutzt wird. Das kannst du wahrschienlich vermeiden, wenn du einen höher auflösenden Timer verwendest. PHP oder auch Perl bieten einen der in Mikrosekunden bereich auflöst. Das sollte für deinen Zweck reichen. |
|
||||
Natürlich sind Request nicht identisch, nur dein Logfile ist der gleiche, oder?
Und ich rede nicht von time, ich weiß ja nicht in welcher Sprache deine Anwendung ist, aber in PHP gibt es microtime() in Perl das Modul Time::HiRes, usw. |
Sponsored Links |
|
|
Ähnliche Themen | ||||
Thema | Autor | Forum | Antworten | Letzter Beitrag |
Apache 2, virtual hosts | Scheppertreiber | Serveradministration und serverseitige Scripte | 0 | 31.03.2008 19:32 |