注意事项:
- 该函数仅存在于PHP的
fast-cgi
模式中 - 该函数之后的脚本会继续占用
php-fpm
进程,若并发较大会导致502错误 - 该函数之后的脚本中若使用session时会持续对session数据锁定,导致后续其他操作无法使用session
- 该函数仍会受 php.ini 中 max_execution_time 设置的影响,超时会报错504
根据注意事项可以较安全的使用该函数:
<?php
set_time_limit(0); // 不受执行时间限制
if (function_exists("fastcgi_finish_request")) {
session_write_close(); // 解除后续脚本对session数据的锁定
fastcgi_finish_request(); // 结束用户响应
}
// 建议不要太长时间的脚本执行
sleep(20);
file_put_contents('test.txt', "test\r\n", FILE_APPEND);
附官方文档:https://www.php.net/manual/zh/function.fastcgi-finish-request.php