我有一个CakePHP控制器操作,它可能需要长达15分钟的运行时间。
我已经设置了PHP的time_limit来适应它,并且脚本运行正常
我的客户端面临的问题是,脚本没有提供任何返回,因为浏览器(在大多数情况下是Firefox)似乎会超时请求,因为脚本在完成之前不会提供任何输出。我可以确认脚本运行正常,因为它在末尾包含了一个主要的INSERT,我可以从MySQL中验证这一点,但它无法呈现结果页。
在这种情况下我该怎么办?CakePHP是否提供了一种刷新部分响应以避免浏览器超时的方法(假设是这种情况…)?
还有其他可能发生的事情吗?
谢谢!
PHP中有一个flush()
函数(http://php.net/manual/en/function.flush.php),这应该意味着PHP要刷新其写缓冲区。
请注意:这是基于我以前做过的事情-我相信一定有更好/更优雅的方法。
如果你不介意是否有输出到浏览器,你可以每15秒左右输出一个空格字符串
例如:
# Every 15 seconds:
echo str_repeat(' ', 100);
flush();