有个需求在一台服务器上查询出一些数据,然后推送到另一台服务器上。查询出的数据大概一万多条,用浏览器执行php curl的时候,过一段时间浏览器就跳到--无法显示该页--上,curl的过期时间还有php脚本执行时间都调的很大,应该不是这两个到期了。如果数据量小就没问题,求解这是什么原因
有个需求在一台服务器上查询出一些数据,然后推送到另一台服务器上。查询出的数据大概一万多条,用浏览器执行php curl的时候,过一段时间浏览器就跳到--无法显示该页--上,curl的过期时间还有php脚本执行时间都调的很大,应该不是这两个到期了。如果数据量小就没问题,求解这是什么原因
一般网络传输都有一个量的限制,比如文件下载,很多都是用了类似断点续传的道理,请求也是,看看你自己的业务需求,怎么多次获取数据,比如常用的分页等等。在量能正常操作的时候,一次性处理当然是最经济的。
//虽然很反感HTTP请求需要长时间的响应(严重占用资源)
//但问题还是得解决下
//首先, --connect-timeout 是curl客户端主动设定的值, 意思为连接多长时间无响应后断开.
//然而, 你忽略了另一个问题, 服务端也可以断开的
//假设你的服务端是 (nginx/apache) + php
//那么, nignx/apache 上也有timeout设置的, 可能是nginx/apache主动断开了
//另外php如果连接mysql等数据库, 也有timeout设置, 如果没有长时间的查询, 可忽略这处.
会错你的意思了, php 有个配置 max_execution_time 即最大执行时间
因为你这个脚本是特例, 所以单独在这个php文件上写
ini_set("max_execution_time", 300);
1 回答4k 阅读✓ 已解决
3 回答1.8k 阅读✓ 已解决
2 回答2.2k 阅读✓ 已解决
1 回答1.4k 阅读✓ 已解决
2 回答2.2k 阅读
1 回答566 阅读✓ 已解决
784 阅读
curl有两个超时参数
--connect-timeout <seconds> 尝试连接的最大时长
-m/--max-time <seconds> 处理的最大时长
另外也可能是数据量大小的问题,需要在php.ini里设置
max_input_time 每个PHP页面接收数据所需的最大时间
memory_limit 每个PHP页面所吃掉的最大内存