php数据超时,php设置超时时间
几种常见的PHP超时处理方法
进入php源程序目录中的ext目录中,这里存放着各个扩展模块的源代码,选择你需要的模块,比如curl模块:cd curl
创新互联是专业的盐山网站建设公司,盐山接单;提供做网站、成都网站建设,网页设计,网站设计,建网站,PHP网站建设等专业做网站服务;采用PHP框架,可快速的进行盐山网站开发网页制作和功能扩展;专业做搜索引擎喜爱的网站,专业的做网站团队,希望更多企业前来合作!
执行phpize生成编译文件,phpize在PHP安装目录的bin目录下
/usr/local/php5/bin/phpize
运行时,可能会报错:Cannot find autoconf. Please check your autoconf installation and
the $PHP_AUTOCONF
environment variable is set correctly and then rerun this
script.,需要安装autoconf:
yum install autoconf(RedHat或者CentOS)、apt-get install
autoconf(Ubuntu Linux)
/usr/local/php5/bin/php -v
执行这个命令时,php会去检查配置文件是否正确,如果有配置错误,
这里会报错,可以根据错误信息去排查!
怎样解决php页面的载入超时问题?
当PHP页面处理大事务时,页面往往会发生超时的错误,我解决此问题的方法如下:1.优化程序代码:这种方法可能有时立竿见影,但对一些已经很优化或者第三方开发的程序,可能用处不大,但我个人觉得这个办法还是应该优先考虑,这个一个优秀程序员必需有的工作美德。2.对多个任务进行拆分:对于一些程序,可能问题并不出现在代码效率上,如Paypal的SOAP调用,大量时间花费在网络的数据传递上了,(此问题在Web Services的远程调用时经常发生),我们当然不能等将来网速的提高来解决这个问题。其实我们可以查看一下在一个POST动作中是否包含了多个任务,如付费、发Email、发货等等。如是这样其实可以对这些任务进行拆分,把这个工作拆分成多个子工作来实现。如执行完付费任务时,使用PHP的Header函数重定向到发送Email的页面,完成后再定向到其他页面,采用redirect页面的方式来接力地完成任务。3.进行PHP设定值的修改如果以上两种方法仍然无法解决,代码已经最优话,同时只有一个单任务的工作需要完成。针对这样的情况,只能修改PHP的设定值了。不过建议不要直接修改PHP.ini,这样会延长所有PHP执行的最大时间。简单的方法就是使用init_set函数,以下的代码把PHP最大执行时间设定为180秒。ini_set('max_execution_time', '180');同时可以使用ini_get把原来设置的max_execution_time保存下来,在进行完操作时回复原来的设定值。
PHP file_get_contents 函数超时的几种解决方法
这里就简单介绍两种:
一、增加超时的时间限制
这里需要注意:set_time_limit只是设置你的PHP程序的超时时间,而不是file_get_contents函数读取URL的超时时间。
我一开始以为set_time_limit也能影响到file_get_contents,后来经测试,是无效的。真正的修改file_get_contents延时可以用resource
$context的timeout参数:
复制代码
代码如下:
$opts
=
array(
‘http'=array(
‘method'=”GET”,
‘timeout'=60,
)
);
$context
=
stream_context_create($opts);
$html
=file_get_contents('',
false,
$context);
fpassthru($fp);
二、一次有延时的话那就多试几次
有时候失败是因为网络等因素造成,没有解决办法,但是可以修改程序,失败时重试几次,仍然失败就放弃,因为file_get_contents()如果失败将返回
FALSE,所以可以下面这样编写代码:
复制代码
代码如下:
$cnt=0;
while($cnt
3
($str=@file_get_contents('http…'))===FALSE)
$cnt++;
PHP中几种常见的超时处理全面总结
具体代码如下:
?php
$ch = curl_init();
$timeout = 5;
curl_setopt ($ch, CURLOPT_URL, '');
curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt ($ch, CURLOPT_CONNECTTIMEOUT, $timeout);
$file_contents = curl_exec($ch);
curl_close($ch);
echo $file_contents;
?
PHP 独特的语法混合了C、Java、Perl以及PHP自创的语法。
它可以比CGI或者Perl更快速地执行动态网页。用PHP做出的动态页面与其他的编程语言相比,PHP是将程序嵌入到HTML(标准通用标记语言下的一个应用)文档中去执行,
执行效率比完全生成HTML标记的CGI要高许多;
PHP还可以执行编译后代码,编译可以达到加密和优化代码运行,使代码运行更快。
thinkpphp3.1.3 rabbitmq 消费时 长时间不用 数据库连接超时2006:MySQL server has gone away 咋怎?
1.由于数据库设计问题造成SQL数据库新增数据时超时
症状:
Microsoft OLE DB Provider for SQL Server 错误 '80040e31' ([ODBC SQL Server Driver]超时已过期);
服务器上看CPU、内存占用率很低;
事件日志中提示: 数据库 '*********' 中文件 '***********' 的自动增长在 453 毫秒后已取消或出现超时。使用 ALTER DATABASE 设置更小的 FILEGROWTH 或设置新的大小。
原因:
数据库设置时,[文件增长]按百分比来增长,当数据库文件很大时(1G以上),新增操作都会报超时,而这时候其实CPU、内存占用率都非常非常的低。
解决方法:
把上述的文件增长这里设置为一个更低的百分比或者直接指定增加多少兆字节。
2.SQL Server数据库超时设置
修改客户端的连接超时设置。默认情况下,通过企业管理器注册另外一台SQL Server的超时设置是 4 秒,而查询分析器是 15 秒。
企业管理器中的设置:
在企业管理器中,选择菜单上的"工具",再选择"选项";
在弹出的"SQL Server企业管理器属性"窗口中,点击"高级"选项卡;
在"连接设置"下的"登录超时(秒)"右边的框中输入一个比较大的数字,如 30。
查询分析器中的设置:
单击“工具”-"选项"-"连接"; 将登录超时设置为一个较大的数字,连接超时改为0。
3.查询语句时超时
原因分析:
查询超时一般来说首先要从sql语句和数据表的结构上找原因,优化sql语句和为数据库的查询字段建索引是最常用的办法。
另外,数据库的查询超时设置一般是sqlserver自己维护的(在你没有修改query wait配置前),只有当你的实际查询时间超过估计查询时间的25倍时,才会超时。
而造成超出估计值那么多的原因有两种可能:
估计时间不准确;
sql语句涉及到大量占用内存的查询(如排序和哈希操作),内存不够,需要排队等待资源造成的。
解决办法:
优化语句,创建\使用合适的索引;
解决第一个问题的方法,更新要查询表的索引分发统计,保证估计时间的正确性,UPDATE STATISTICS 表名;
增加内存
如果想手动设置查询超时,可以使用以下语句:
sp_configure 'show advanced options', 1 GO RECONFIGURE GO sp_configure 'query wait', 2147483647 GO RECONFIGURE GO
4.应用程序连接失败
故障:
在应用程序中我们也会遇到类似的错误信息,例如:
Microsoft OLE DB Provider for ODBC Drivers 错误 '80004005'. [Microsoft][ODBC SQL Server Driver]超时已过期.
解决方法:
A.如果遇到连接超时的错误,我们可以在程序中修改 Connection 对象的超时设置,再打开该连接。例如:
<%Set Conn = Server.CreateObject("ADODB.Connection")DSNtest="DRIVER={SQL Server};SERVER=ServerName;UID=USER;PWD=password;DATABASE=mydatabase"Conn. Properties("Connect Timeout") = 15 '以秒为单位Conn.open DSNtest%>
B. 如果遇到查询超时的错误,我们可以在程序中修改 Recordset 对象的超时设置,再打开结果集。例如:
Dim cn As New ADODB.ConnectionDim rs As ADODB.Recordset. . . cmd1 = txtQuery.TextSet rs = New ADODB.Recordsetrs.Properties("Command Time Out") = 300'同样以秒为单位,如果设置为 0 表示无限制rs.Open cmd1, cnrs.MoveFirst. . .
另外,一些硬件及网络方面的原因也可能造成SQL数据库连接超时.
php httpclient 超时怎么办
//HttpClient功能很强大,可以和snoopy一样实行模拟数据提交等操作
使用静态方法quikGet(ur)或者quickPost(url)无法做到设置超时时间,所以做了如下修改,通过下面的方法可以实现
//设置时间超时
$bits = parse_url($main_url);
$host = $bits['host'];
$port = isset($bits['port']) ? $bits['port'] : 80;
$path = isset($bits['path']) ? $bits['path'] : '/';
if (isset($bits['query'])) {
echo $path .= '?'.$bits['query'];
}
// $client = new HttpClient($main_url);
//$client-setDebug(false);
$client = new HttpClient($host, $port);
$client -timeout =10;
if (!$client-get($path)) {
return false;
} else {
$pageContents = $client-getContent();
}
//
文章题目:php数据超时,php设置超时时间
网站URL:http://pwwzsj.com/article/hecige.html