phpbar.de logo

Mailinglisten-Archive

[php] register_shutdown_function ...

[php] register_shutdown_function ...

Martin Rozmus martinrozmus at freenet.de
Fre Apr 23 16:10:26 CEST 2004


Am Freitag, 23. April 2004 14:55 schrieb Andreas Lange:
> Thomas Richter wrote:
> > du redest aber die ganze zeit ueber den "stop" button im browser...
>
> Als Analogie zu dem was ich erreichen will.
>
> > vielleicht ist dann folgendes fuer dich interessant:
> >
> > http://www.php.net/manual/de/features.connection-handling.php
>
> [Auszug aus dem Manual gesnippt]
>
> Ich möchste ja nicht abfragen, ob der User STOP gedrückt hat, sondern
> einen ähnlichen Zustand auf der PHP Seite erzeugen.
>
> Ich habe einen Programmpart, der sehr Zeitintensiv ist. Der Browser
> selbst sollte allerdings recht schnell bedient werden. Die
> Berechnungen können also Problemlos im "hintergrund" ohne Ausgabe
> weiterlaufen.
>
> > ich hoffe die situation ist jetzt etwas klarer!
>
> Jein ;-)
>
> Die Dokumentation ist ungenau im Zusammenhang zwischen exit(); und
> register_shutdown_function();
>
> Ereignisliste:
> 1. Apache erhält Request
> 2. Apache ruft die PHP Seite auf
> 3. PHP arbeitet die Seite ab
> 4. Apache erhält Abbruchsignal durch User
> 5. PHP erkennt Abbruch und führt registrierte Funktionen aus.
>
> Ich möchte nun das Ereignis #4 künstlich herbeiführen. Da war für mich
> der mehr oder weniger logische Schluss die() bzw. exit() aufzurufen.
> Damit wird das Programm beendet. PHP ruft entsprechend die
> registrierter Funktionen auf.
Ich bin mir nicht sicher, aber würde die() bzw. exit() den Apache zum Abbruch 
der Verbindung anweisen (= entsprechender thread wird terminiert), würde 
gleichzeitig der PHP Prozess terminiert werden -- zumindest, wenn PHP als 
Apache Modul läuft. Dadurch könnte keine weiter Funktion seitens PHP 
ausgeführt werden. Ist aber nur so aus dem Daumen gelutscht ;)
[...]

-- 
MfG
Martin Rozmus

martinrozmus at freenet.de

php::bar PHP Wiki   -   Listenarchive