立即发送Zend_Controller_Response_Http

时间:2012-06-26 13:48:20

标签: php zend-framework zend-controller

我正在开发Rest服务。一些外部系统向我发送一个XML文件,我将其解析,在DB中加载数据,然后发送响应 - “已加载的具体对象的范围”。

问题是解析和向DB添加数据需要很长时间,外部系统会收到超时错误消息。我想在解析传入的XML时立即通过部分发送响应:

1毫秒 - 对象1已加载 2毫秒 - 已加载对象

class ImportController extends Zend_Rest_Controller{

   Zend_Controller_Front::returnResponse(true);
   $this->getResponse()->setHeader('Content-Type', 'text/html');

   foreach($xml as $xmlElement){
        DbClass::addXmlData($xmlElement);
        $this->getResponse()->setBody('Another object has been loaded');
        $this->getResponse()->setHttpResponseCode(201);
   }
}

1 个答案:

答案 0 :(得分:2)

发送回复后,您无法继续发送回复。您必须有多个请求。对单个请求的多个响应是不好的做法。