Heim >Backend-Entwicklung >PHP-Tutorial >Detaillierte Erklärung der Funktion fastcgi_finish_request() in Laravel

Detaillierte Erklärung der Funktion fastcgi_finish_request() in Laravel

零下一度
零下一度Original
2017-06-23 13:51:182716Durchsuche

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([&#39;code&#39; => 0, &#39;data&#39; => [], &#39;msg&#39; => &#39;&#39;]);}/**     * @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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn