使用使用nginx代理webman 目前导出6W数据没问题超出8W数据后则报错502
//导出
public function exlCsv($queryResult, $heade)
{
ini_set('memory_limit', '800M');
ini_set('max_execution_time', '500');
//获取头部
$headeList = $this->forHeader($heade);
//获取内容
$body = $this->forBody($queryResult);
$headeList .= "\n" . $body;
//下载csv的文件名
$fileName = '公共导出' . date('Y-m-d H:i:s') . '.csv';
//打开php数据输入缓冲区
ob_start();
echo $headeList;
$xlsData = ob_get_clean();
$response = response();
$response->header('Content-type', 'text/html;charset=utf-8');
$response->header('Content-type', 'text/csv');
$response->header('Content-Disposition', 'attachment;filename=' . $fileName);
$response->header('Cache-Control', 'must-revalidate,post-check=0,pre-check=0');
$response->header('Expires', '0');
$response->header('Pragma', 'public');
$response->header('Connection', 'Keep-Alive');
$response->withBody($xlsData);
return $response;
}
502 Bad Gateway
nginx
webman版本
php版本号 运行环境linux
代理配置
https://xlswriter-docs.viest.me/zh-cn/an-zhuang/huan-jing-yao-qiu
试试这个
谢谢 我看看
看rutime/logs下的日志,猜测导出数据太大,超出php的内存限制了
rutime 下面没打印出报错日志呢,应该不是内存问题 我加到2048M都不行,导出执行到1分30秒就断开了不知道是php的脚本时间问题还是nginx时间问题,不过这两个时间我都设置了300秒 但是脚本只跑了90秒就断开了
不用nginx代理呢
不用nginx代理可以,已处理,nginx代理修改配置没生效,我之前是重载配置的,我重启服务后可以了
我记得php有个yield你度一下用法,可以解决吃内存问题。
迭代器吗?