fastcgi_finish_request()
ist eine von php-fpm
bereitgestellte Funktion, die die Verbindungsantwortdaten vorzeitig beenden und weiterhin Aufgaben im Backend ausführen kann, um eine dauerhafte Leistung zu erzielen Aufgaben oder verbessern Wenn es um die Reaktionsgeschwindigkeit geht, können wir diese Funktion verwenden, um eine einfache Implementierung zu erreichen. Eine bessere Möglichkeit ist natürlich die Verwendung einer Warteschlange.
In Laravel wird beim Senden einer Antwort fastcgi_finish_request()
aufgerufen (sofern vorhanden), und dann wird die Methode terminate()
aufgerufen, die wiederum die Methode terminate()
in der registrierten Middleware ausführt.
Die Verwendung von Terminable Middleware im Dokument erfordert die Registrierung globaler Middleware. In der Praxis müssen wir jedoch möglicherweise nur im Voraus auf einige Schnittstellen reagieren und dann die nachfolgende Logik (Datenbank, Protokolle usw.) verarbeiten. Aber wie Sie dem Quellcode entnehmen können, unterstützt routeMiddleware
von Laravel tatsächlich Terminable Middleware, sodass wir wie folgt eine FinishRequest
-Middleware definieren können, um sie zu registrieren und zu verwenden.
<?phpnamespace App\Http\Middleware;use Closure;class FinishRequest {protected static $next;/** * Handle an incoming request. * * @param \Illuminate\Http\Request $request * @param \Closure $next * @return mixed */public function handle($request, Closure $next){self::$next = $next;return response(['code' => 0, 'data' => [], 'msg' => '']);}/** * @param \Illuminate\Http\Request $request * @param $response */public function terminate($request, $response){call_user_func(self::$next, $request);} }
Das obige ist der detaillierte Inhalt vonDetaillierte Erklärung der Funktion fastcgi_finish_request() in Laravel. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!