fastcgi_finish_request()
は、接続応答データを早期に終了し、バックエンドでタスクを実行し続けることができる php-fpm
によって提供される関数です。実行に長時間かかるのを防ぐ タスクを実行する場合や応答速度を向上させる場合には、この機能を使用して簡単に実装することもできます。もちろん、より良い方法はキューを使用することです。 fastcgi_finish_request()
是php-fpm
提供的可提前结束连接响应数据并在后端继续执行任务的函数,为了执行耗时较长的任务或提高响应速度的时候,我们可以使用这个函数来简单实现,当然,更好的方式是使用队列。
在Laravel中,发送响应就会调用fastcgi_finish_request()
(若存在),之后会调用terminate()
方法,该方法会依次执行注册的中间件中的terminate()
方法。
文档中使用 Terminable Middleware 是需要注册全局中间件,但实际中,我们可能只需要对部分接口进行提前响应,然后处理后续逻辑(数据库、日志...)。但通过源码 可以看到,Laravel的routeMiddleware
实际上是支持 Terminable Middleware 的,所以我们可以像下面这样定义个FinishRequest
fastcgi_finish_request()
(存在する場合) が呼び出され、その後 terminate()
メソッドが呼び出され、登録されたミドルウェアが実行されます。シーケンス内の terminate()
メソッド。 ドキュメント内でターミナブル ミドルウェアを使用するには、グローバル ミドルウェアを登録する必要がありますが、実際には、一部のインターフェイスに事前に応答し、後続のロジック (データベース、ログなど) を処理するだけで済みます。しかし、ソースコードからわかるように、Laravel の routeMiddleware
は実際には Terminable Middleware をサポートしているため、次のように FinishRequest
ミドルウェアを定義して使用を登録できます。 🎜🎜りー🎜以上がLaravelのfastcgi_finish_request()関数の詳しい説明の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。