PHP-Ausführung nach dem Senden der HTTP-Antwort fortsetzen

Wie kann ich PHP 5.2 (als Apache mod_php ausgeführt) veranlassen, eine vollständige HTTP-Antwort an den Client zu senden und die Operationen dann noch eine Minute lang auszuführen?

Die lange Geschichte:

Ich habe ein PHP-Skript, das einige lange Datenbankanforderungen ausführen und E-Mails senden muss, deren Ausführung 45 bis 60 Sekunden dauert. Dieses Skript wird von einer Anwendung aufgerufen, über die ich keine Kontrolle habe. Ich benötige die Anwendung, um Fehlermeldungen des PHP-Skripts zu melden (meist ungültige Parameterfehler).

Die Anwendung hat eine Zeitüberschreitungsverzögerung von weniger als 45 Sekunden (ich kenne den genauen Wert nicht) und registriert daher jede Ausführung des PHP-Skripts als Fehler. Daher brauche ich PHP, um die vollständige HTTP-Antwort so schnell wie möglich an den Client zu senden (im Idealfall, sobald die Eingabeparameter validiert wurden) und dann die Datenbank- und E-Mail-Verarbeitung auszuführen.

Ich lasse mod_php laufen, alsopcntl_fork ist nicht verfügbar. Ich könnte das umgehen, indem ich die zu verarbeitenden Daten in der Datenbank speichere und den eigentlichen Prozess von @ aus durchführcron, aber ich suche eine kürzere Lösung.

Antworten auf die Frage(26)

Ihre Antwort auf die Frage