首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >PHP -划分et Impera以避免致命错误: Maxim执行时间超过了

PHP -划分et Impera以避免致命错误: Maxim执行时间超过了
EN

Stack Overflow用户
提问于 2015-08-25 17:46:49
回答 1查看 67关注 0票数 0

所有人!

我正在建设一个“探索者”从7个网站获得一些价格。我正在使用cUrl来获得这个价格,并且我正在处理这个问题:致命错误:最大执行超过。我读过这方面的文章,并看到了一些解决办法,但我想知道我是否能把这个过程划分得比现在更多。这是我的应用程序:

客户进入我的网站,搜索一些代码的项目(最坏的情况是其中之一,5个不同的代码一次),并发送一个价格的要求。因此,我向我的MainController发布了最多5个代码的数组,该数组分布在每个控制器上,如下所示:

代码语言:javascript
运行
复制
$codesArray -> MainController -> foreach(ControllersList as Controller){Controller->getPrices($codesArray)}

我假设时间执行是错误的,或者不是我想要的,因为我已经用3段代码测试了它,“致命错误:最大执行时间:30秒__”从开始到第五个控制器的时间是33秒。我认为在3秒内搜索3项是不可能的,并且在第5次超过,所以这意味着服务器正在计算MainController进程,而不是每个进程本身。我的问题是如何正确地划分过程以获得每个控制器的时间分布?

我希望我让自己明白了,对不起,英语不好,解释也不好。

注意:我用一个7码的数组测试了每个控制器,我从来没有得到这个致命的错误,这就是为什么我想要划分这个过程,但我不知道如何。

备注2:发送一段代码一次将导致n*7次的卷曲执行,因为使用数组该过程只重复搜索功能,而不是整个连接到网站->检查登录->登录*->搜索

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-08-25 19:13:12

定时器是与整个请求相关的,在不同的控制器调用上是不分裂的。整个执行时间不能超过30秒(您可以在php.ini中增加时间限制。而且,它们也不是多个进程: PHP是单线程的,所以您不能生成另一个线程并运行它。您可以尝试使用curl_multi_init()并行地进行调用,然后进行处理(我假设调用比实际处理花费更多的时间)。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32210741

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档