mit der Prozesskomponente von SF2, es ist möglich, asynchrone Hintergrundaufgaben von einem Controller zu starten.Ausführen von Symfony2 Command im Hintergrund und Abfrage der Ausgabe über Ajax
Was ich jetzt tun möchte, ist ein Javascript zu schreiben, das regelmäßig nach diesem Befehl sucht und die Ausgabe dieser Aufgabe abruft, um den Benutzer darüber zu informieren, was passiert.
Gibt es eine Möglichkeit, den Prozess zu speichern und Informationen über mehrere Anfragen abzurufen, so dass ich ihn über eine Ajax-Anfrage abfragen kann?
Ich denke, Sie wären besser dran, den Befehl zu haben, seine Fortschrittsupdates irgendwohin zu schieben und dann Ihren Ajax-Aufruf dagegen vergleichen zu lassen. –
Das interessiert mich auch. Die Probleme, auf die ich gestoßen bin, sind, sobald Sie Ihren Ajax-Aufruf starten, dass der Prozess auf eine Antwort wartet, aber Sie können keine Antwort von Ihrem Befehl zurückgeben, da dies Ihr Skript beenden wird. Entweder muss Ihr Befehl seinen Fortschritt irgendwohin verschieben (nicht sicher, wo), wie @DerickF gesagt hat, oder Ihr Befehl muss einen anderen Hintergrundprozess aufrufen, der irgendwo noch Updates pushen muss. Geben Sie diese beiden Szenarien an. Ich denke, am einfachsten wäre es, irgendwo diese Updates in Ihrem ursprünglichen Befehl zu finden. –
Weiter zu meinem ersten Kommentar, wenn Sie Updates auf die Datenbank schieben, erhalten Sie einen Leistungseinbruch, weil Sie anstatt mit einer großen Transaktion alles mit kleineren Transaktionen fortführen und Ihr Skript länger läuft. Einige der wichtigsten Dinge, die Sie herausfinden müssen, sind: Wo drücken Sie diese Updates und wie werden sie abgefragt? –