使用FOSRestBundle返回+ 100K行的大表

时间:2013-12-13 13:17:08

标签: symfony fosrestbundle

FOSRestBundle工作正常,但每当我尝试返回大型JSONArray,包含50,000条或更多条记录时,客户端需要超过5分钟并超时。

这是我的控制器

use FOS\RestBundle\Controller\FOSRestController;
use FOS\RestBundle\Routing\ClassResourceInterface;

class ProductController extends FOSRestController implements ClassResourceInterface {

    public function cgetAction(){
        $data = $this->getDoctrine()->getRepository('MyApiBundle:Product')->findAll();
        $view = $this->view($data);
        return $this->handleView($view);            
    }
}

这是我的config.yml

fos_rest:
    param_fetcher_listener: true
    body_listener: true
    format_listener: true
    view:
        view_response_listener: 'force'        
        default_engine: php

更新1:每当我从实体中删除关系时,一切正常。

1 个答案:

答案 0 :(得分:1)

如果您向客户提供可视化数据,那么返回超过可读数量的记录是没有意义的。您总是希望在客户端和服务器端对数据进行分页以限制负载。