我有一个长期运行的Laravel流程来生成报告。选择长日期范围时,我在大约100秒后重定向回到相同的URL。我将代码更改为:
set_time_limit(20);
while(1) {
$var = 3 + 4 / 11;
}
它运行20秒然后重定向到相同的URL。我想补充说我有2条路线,一条GET路线和一条POST路线。 POST路由超时。
我已经尝试了
set_time_limit(0);
但它并没有什么不同。我打开了调试,但没有。任何帮助表示赞赏。
编辑:我正在运行PHP 5.4.x,因此它不安全。 编辑:这是控制器 - http://laravel.io/bin/WVdVz,这是应该执行的最后一个代码 - http://laravel.io/bin/aa2GW。 编辑:错误处理库,哎呀,捕获并记录超时错误。我的日志很干净。这与Laravel在_download函数后如何处理响应有关...
答案 0 :(得分:1)
经过大量的调试后,我想通了。 Apache正在超时。显然,当Apache超时时,它会抛出500响应代码。显然(再次),当浏览器获得500个错误代码到POST请求时,它将其重新发送为GET请求。我在这里更详细地写了它:http://blog.voltampmedia.com/2014/09/02/php-apache-timeouts-post-requests/
要明确,这不是Laravel问题。请注意,Whoops库确实捕获了超时错误。