- 1.提前结束会话(请求), 但是进程仍在执行后续耗时代码 - FastCGI模式下, 使用fastcgi_finish_request()函数能马上结束会话 - 注意: fastcgi_finish_request官方介绍页面下的评论提出需要注意的点[链接](https://www.php.net/manual/zh/function.fastcgi-finish-request.php) 正常脚本结束时php会自动调用session_write_close()函数, 而脚本在处理中的时候占用者session锁,对于后续请求来说是阻塞的.所以要尽快手动调用session_write_close()结束并保存session数据. 这对于其他有竞争锁情况同样适用,没有用了要尽快释放 - 一般模式下(如Apache, Nginx, FastCGI(直接使用fastcgi_finish_request()更方便等), 提前输出内容, 结束会话 <?php //适用于大多数运行模式(不包括命令行模式) set_time_limit(0); //设置不限执行时间 ignore_user_abort(true); //忽略客户端中断 //nginx等可能需要达到4k才会输出buffer,所有先输出一些空字符串 $str = str_repeat(' ', 65536); $str .= '立即输出' . date('Y-m-d H:i:s'); #header('X-Accel-Buffering: no'); // 关闭加速缓冲, 在nginx模式需要开启此行 header("Content-Type: text/html;charset=utf-8"); header("Connection: close");//告诉浏览器不需要保持长连接 header('Content-Length: '. s
php异步执行的几种方法, 非阻塞运行(详细介绍和总整理)
最新推荐文章于 2024-08-05 09:19:01 发布
本文详细介绍了PHP中实现异步执行的pcntl_fork方法,该方法需要扩展支持,但可以实现非阻塞运行。同时,文章也邀请读者分享更多关于PHP异步执行的优秀解决方案。
摘要由CSDN通过智能技术生成