//1、返回数据到前端
$rs = ['code' => 0, 'msg' => 'ok', 'data' => true];
set_time_limit(0);
ob_end_clean();
header("Connection: close");
header("HTTP/1.1 200 OK");
header("Content-Type: application/json;charset=utf-8");// 如果前端要的是json则添加,默认是返回的html/text
ob_start();
echo json_encode($rs);// 输出结果到前端
$size = ob_get_length();
header("Content-Length: $size");
ob_end_flush();
flush();
if (function_exists("fastcgi_finish_request")) { // yii或yaf默认不会立即输出,加上此句即可(前提是用的fpm)
fastcgi_finish_request(); // 响应完成, 立即返回到前端,关闭连接
}
//2、继续后台执行
ignore_user_abort(true);
set_time_limit(60);
$interval = 5;
$stop = 1;
do {
if($stop == 10 ) break;
file_put_contents('phpzixue.txt',' Current Time: '.time().' Stop: '.$stop.PHP_EOL,FILE_APPEND);
$stop++;
sleep( $interval );
} while(true);
[php]长时间执行PHP,返回结果到前端&后台继续执行
最新推荐文章于 2024-07-17 07:00:00 发布
本文探讨如何在PHP中处理长时间运行的任务,并在任务启动后返回结果到前端,同时允许后台继续执行任务。主要涉及的技术点包括异步处理、后台任务调度以及与前端的通信机制。
1212

被折叠的 条评论
为什么被折叠?



