freemanzk2019-01-24 12:38:26
发布到技术

php继续执行函数

PHP-FPM提供的函数fastcgi_finish_request可以冲刷(flush)所有响应的数据给客户端并结束请求.
这使得客户端结束连接后,能够继续执行需要大量时间运行的任务.
http://php.net/manual/zh/function.fastcgi-finish-request.php
http://www.laruence.com/2011/04/13/1991.html
<?php
echo '例子';
file_put_contents('log.txt', date('Y-m-d H:i:s') . " 上传视频n", FILE_APPEND);
fastcgi_finish_request();
sleep(1);
file_put_contents('log.txt', date('Y-m-d H:i:s') . " 转换格式n", FILE_APPEND);
sleep(1);
file_put_contents('log.txt', date('Y-m-d H:i:s') . " 提取图片n", FILE_APPEND);
?>
代码里用sleep模拟一些耗时的操作,浏览时没有被堵塞,程序却都执行了,具体看日志.