Heim >Backend-Entwicklung >PHP-Tutorial >Der Swoole-HTTP-Server implementiert die Sprungfunktion und das Programm muss die Ausführung nicht fortsetzen.
Verwenden Sie den Header, den Status und das Ende der Methode swoole_http_response, um einen Sprung zu erreichen
Der Code lautet wie folgt
<code> public function redirect($url) { $this->header("Location", $url); $this->status(302); return $this->end(''); }</code>
Aber nach der Verwendung von „redirect()“ wird das Programm nicht unterbrochen und läuft weiter,
Später habe ich das Programm unterbrochen, indem ich eine Ausnahme ausgelöst habe, um die weitere Ausführung zu verhindern, aber diese Methode hat dazu geführt, dass der Worker neu gestartet wurde,
Frage: Gibt es eine gute Möglichkeit, das Programm unmittelbar nach dem Seitensprung zu unterbrechen und die Ausführung nicht fortzusetzen, die Seite jedoch sofort zu springen? Es ist erforderlich, keine Methode zu verwenden, die Ausnahmen auslöst, um das Programm zu unterbrechen
Verwenden Sie den Header, den Status und das Ende der Methode swoole_http_response, um einen Sprung zu erreichen
Der Code lautet wie folgt
<code> public function redirect($url) { $this->header("Location", $url); $this->status(302); return $this->end(''); }</code>
Aber nach der Verwendung von „redirect()“ wird das Programm nicht unterbrochen und läuft weiter,
Später habe ich das Programm unterbrochen, indem ich eine Ausnahme ausgelöst habe, um die weitere Ausführung zu verhindern, aber diese Methode hat dazu geführt, dass der Worker neu gestartet wurde,
Frage: Gibt es eine gute Möglichkeit, das Programm unmittelbar nach dem Seitensprung zu unterbrechen und die Ausführung nicht fortzusetzen, die Seite jedoch sofort zu springen? Es ist erforderlich, keine Methode zu verwenden, die Ausnahmen auslöst, um das Programm zu unterbrechen
Ursprünglich wollte ich „exit(0)“ sagen, aber es fühlt sich etwas falsch an
Ich habe Swoole noch nie verwendet, ich habe mir nur die Swoole-Dokumentation angesehen,
swoole_http_response->end
Senden Sie den HTTP-Antworttext und beenden Sie die Anforderungsverarbeitung.
swoole_http_response->end(string $html);
Nach dem Endvorgang wird der HTML-Inhalt an den Client-Browser gesendet und das $request/$response-Objekt wird zerstört
Wenn KeepAlive aktiviert ist an, die Verbindung wird aufrechterhalten, der Server wartet auf die nächste Anfrage
Wenn KeepAlive nicht aktiviert ist, unterbricht der Server die Verbindung
Nach end() wird das $response-Objekt zerstört, die http-Antwort ist abgeschlossen und der Geschäftscode sollte nicht ausgeführt werden.
http://wiki.swoole.com/wiki/p...
Es kann verstanden werden, dass der Reaktor Nginx und der Worker PHP-FPM ist. Der Reaktorthread verarbeitet die Netzwerkanforderung asynchron und parallel und leitet sie dann zur Verarbeitung an den Arbeitsprozess weiter. Der Reaktor und der Arbeiter kommunizieren über IPC.Swooles Reaktor, Worker und Task_Worker können eng kombiniert werden, um eine erweiterte Nutzung zu ermöglichen.
Eine häufigere Metapher ist die Annahme, dass der Server eine Fabrik und der Reaktor ein Verkauf ist, der Ihnen hilft, Projektaufträge zu erhalten. Der Arbeiter ist der Arbeiter. Wenn der Verkäufer die Bestellung erhält, macht sich der Arbeiter an die Arbeit, um das zu produzieren, was der Kunde will. Task_worker kann als Verwaltungspersonal verstanden werden, das den Arbeitern bei der Erledigung einiger Aufgaben helfen kann, damit sich die Arbeiter auf ihre Arbeit konzentrieren können.
Ein Neustart von Woker scheint keine Wirkung zu haben.