PHP较安全的使用fastcgi_finish_request()

注意事项:

  1. 该函数仅存在于PHP的 fast-cgi 模式中
  2. 该函数之后的脚本会继续占用php-fpm进程,若并发较大会导致502错误
  3. 该函数之后的脚本中若使用session时会持续对session数据锁定,导致后续其他操作无法使用session
  4. 该函数仍会受 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

Author: thinkwei

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注