set_time_limit调用导致超时

这个问题真的很奇葩...

set_time_limit本来是用来设置超时时间的,结果这个func执行时间超过30秒导致超时了...

我的开发环境比较复杂:

系统:windows7 x64
容器:Docker toolsbox
镜像:基于官方php5.6镜像定制
扩展:常用的gd,xdebug等

其他可能影响的因素:

使用了primocache,把空闲内存设置为磁盘缓存,开启了延时写入(准备关闭测试下),测试过了,和这个没关系

不知道大家有没有碰到调用set_time_limit时,超时的情况,到stackoverflow查了下,貌似没人碰到...

=== 补充 ===

这个帖子发的和我碰到的问题一样。
https://bugs.xdebug.org/view....

确认是xdebug的问题,可能也和docker环境也有关系。

阅读 3.7k
2 个回答

升级xdebug.

我碰到过.
测试出来是xdebug版本问题.

一执行set_time_limit, apache直接没返回, 然后cpu upto 100%

当php运行于安全模式时,此功能不能生效。除了关闭安全模式或改变php.ini中的时间限制,没有别的办法。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题