我使用 Web 服务有这个非常长的过程,我需要通过 ajax 请求使用单个按钮启动,因此我可以在过程完成后显示响应消息。ajax请求只是调用了一个Zend Controller,可以这样概括:
public function myajaxAction() {
$myModel = new MyModel();
$someData = $myModel->fetchAll();
foreach ($someData as $dataElement) {
$response = call_to_remote_client($dataElement['ID']);
echo $response;
}
$this->_helper->viewRenderer->setNoRender();
$this->_helper->getHelper('layout')->disableLayout();
}
$response 然后作为success的参数被接收,并且可以被 html()'d 到一些响应 div 中。
有一段时间一切顺利,但我现在发现,如果上述进程运行时间过长,我的 ajax 请求将失败,因为 502 Bad Gateway 错误。Firebug 告诉我这发生在每次 5 分 0 秒后,所以听起来很像超时。
我发现这个链接似乎讨论了完全相同的问题。它帮助我更好地识别问题,但我想不出任何解决方案。有没有办法增加这个超时?我尝试在标准输出上使用 stream_set_timeout(),但我显然不知道我在做什么,因此它显然不起作用。
对我现在的选择有什么想法吗?