Erstellen von Hintergrundprozessen in PHP für lange laufende Prozesse

Ok, vergib mir, wenn dies eine Wiederholung einer anderen Frage ist, aber nach der Suche habe ich keine klare Antwort gefunden. Grundsätzlich möchte ich, dass meine PHP-Webanwendung ein Ereignis auslöst (z. B. einen E-Mail- oder Berichtsgenerator), das einige Minuten in Anspruch nimmt, um die Kontrolle über die Seite wiederherzustellen und sie sofort wieder aufzurufen. Ich komme aus einer .NET-Welt, in der dies leicht mit einem Thread erreicht werden kann.

Also hier ist der Workflow:

Der Benutzer klickt auf die Schaltfläche "Bericht erstellen"Ajax-Aufruf an '../blah/generate-report' und kehrt sofort zurückDer Prozess wird gestartet und läuft bis zum Abschluss, während der Benutzer sein Geschäft weiterführen kannDer Benutzer kann zur Berichtsseite zurückkehren und den Fortschritt sehen: "Bericht zu 50% abgeschlossen"

Was ist der beste Weg, um dies zu erreichen? Kurze Antworten sind in Ordnung. Ich möchte keinen Code, sondern nur eine Anleitung. Ich habe mir shell_exec angesehen, bin mir aber nicht sicher, ob dies der beste Weg ist oder wie man damit Funktionen in einer Web-App verarbeitet. (Ich verwende das Yii-Framework, wenn das einen Unterschied macht). Vielen Dank.

-Jason

Antworten auf die Frage(4)

Ihre Antwort auf die Frage