PHP脚本执行超时的多种设置方式
AndyYang|
阅读:1348
发表时间:2020-06-07 21:15:41
php
摘要:php.ini 中限定程序的最长执行时间是 30 秒,这是由 php.ini 配置文件中的 max_execution_time 变量指定,倘若你有一个需要颇多时间才能完成的程序代码,代码会由于超时而执行失败,例如要发送很多电子邮件给大量收件者,或者要进行繁重的数据分析工作,服务器会在 30 秒后强行中止正在执行的程序,如何解决这个问题呢。
php.ini 中限定程序的最长执行时间是 30 秒,这是由 php.ini 配置文件中的 max_execution_time 变量指定,倘若你有一个需要颇多时间才能完成的程序代码,代码会由于超时而执行失败,例如要发送很多电子邮件给大量收件者,或者要进行繁重的数据分析工作,服务器会在 30 秒后强行中止正在执行的程序,如何解决这个问题呢。
PHP设置脚本最大执行时间的三种方法:
1、在php.ini里面设置
max_execution_time = 120;
2、通过PHP的ini_set函数设置
ini_set("max_execution_time", "120");
3、通过set_time_limit 函数设置
set_time_limit(120);
以上几个数字设置为0则无限制,脚本会一直执行下去,直到执行结束。
所以,需要长时间执行的脚本,一般在php代码开头处添加如下代码就可以了
set_time_limit(0);
如果运行中内存会增大,需要加大内存:
ini_set('memory_limit', '500M'); // 临时设置最大内存占用为500M
有的时候这样设置之后,实际还是不可行的,服务器会报502。这个时候我们就得检查php-fpm的设置:
request_terminate_timeout
这个值是max_execution_time,就是fast-cgi的执行脚本时间,将其设置为0s。
0s为关闭,就是无限执行下去。
php-cgi进程数不够用、php执行时间长、或者是php-cgi进程死掉,都会出现502错误。
已有0条评论