1

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

问题是解析数据并将数据添加到数据库需要大量时间,并且外部系统会收到超时错误消息。我想在解析传入的 XML 时立即按部分发送响应:

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);
   }
}
4

1 回答 1

2

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

于 2012-06-26T14:04:44.193 回答