php处理大量数据时,运行到一定时间就中断了,请问如何解决

php处理大量数据时,运行到一定时间就中断了,请问如何解决,第1张

你是cli模式还是cgi模式?cli模式不用设默认就是无时间限制,cgi默认是有30秒超时限制。

你可以先看看每次中断是固定时长,还是固定次数;也可以多打日志,每次循环都输出些参考参数如循环条件、内存使用等信息,再分析哪些可能导致程序中断的原因

第一种原因:目前lnmp一键安装包比较多的问题就是502 Bad Gateway,大部分情况下原因是在安装php前,脚本中某些lib包可能没有安装上,造成php没有编译安装成功。解决办法:可以尝试根据lnmp一键安装包中的脚本手动安装一下,看看是什么错误导致的。

第二种原因:在phpini里,eaccelerator配置项一定要放在Zend Optimizer配置之前,否则也可能引起502 Bad Gateway

第三种原因:在安装好使用过程中出现502问题,一般是因为默认php-cgi进程是5个,可能因为phpcgi进程不够用而造成502,需要修改/usr/local/php/etc/php-fpmconf 将其中的max_children值适当增加。

第四种原因:php执行超时,修改/usr/local/php/etc/phpini 将max_execution_time 改为300。

第五种原因:磁盘空间不足,如mysql日志占用大量空间。

第六种原因:查看php-cgi进程是否在运行。

具体代码如下:

<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还可以执行编译后代码,编译可以达到加密和优化代码运行,使代码运行更快。

php中缺省的最长执行时间是 30 秒,这是由 phpini 中的 max_execution_time 变量指定,倘若你有一个需要颇多时间才能完成的工作,例如要发送很多电子邮件给大量收件者,或者要进行繁重的数据分析工作,服务器会在 30 秒后强行中止正在执行的程序。

设置的办法是:

一、直接修改phpini 中 max_execution_time 的数值。

二、在没权限修改phpini文件时,在 PHP 程序中加入 ini_set('max_execution_time', '0'),数值 0 表示没有执行时间的限制。

以上就是关于php处理大量数据时,运行到一定时间就中断了,请问如何解决全部的内容,包括:php处理大量数据时,运行到一定时间就中断了,请问如何解决、遇到502 bad gateway怎么解决、PHP中几种常见的超时处理全面总结等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zz/10111495.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-05
下一篇2023-05-05

发表评论

登录后才能评论

评论列表(0条)

    保存