处理海量数据 API-PLATFORM
Dealing with huge data API-PLATFORM
我有一个名为 Companies 的实体,它与另一个名为 CrmItems 的实体具有 OneToMany 关系。
Entity/Company.php
/**
* @ORM\OneToMany(targetEntity="App\Entity\CrmItems", mappedBy="company")
* @ORM\JoinColumn(nullable=false, name="`CompanyID`", referencedColumnName="`company_id`")
*/
private $crmItems;
Entity/CrmItems.php
/**
* @ORM\ManyToOne(targetEntity="App\Entity\Companies", inversedBy="crmItems")
* @ORM\JoinColumn(nullable=false, name="company_id", referencedColumnName="`CompanyID`")
*/
private $company;
这里的问题是,一个公司可以有 11000 个项目。
因此,当我请求 http://localhost:8080/companies/2 时,出现了 502 错误
似乎 header 尺寸太大,与 X-Cache 自定义 header 尺寸有关。
我已经在网上搜索过 API 平台官方文档 https://api-platform.com/docs/v2.3/extra/troubleshooting/#upstream-sent-too-big-header-while-reading-response-header-from-upstream-502-error
解决方案似乎增加了 fastcgi 缓冲区。
# Bigger buffer size to handle cache invalidation headers expansion
fastcgi_buffer_size 32k;
fastcgi_buffers 8 16k;
我已经试过了,没有成功。
处理海量数据有什么技巧吗? API 平台是否支持关系型 collections 分页?
谢谢!
API Platform supports relational collections pagination?
我从不关注文档。
如果真的太大了,我会考虑其他的设计方式。为什么不为公司使用 CrmItems 和过滤器。这样你就可以对它们进行分页。
我有一个名为 Companies 的实体,它与另一个名为 CrmItems 的实体具有 OneToMany 关系。
Entity/Company.php
/**
* @ORM\OneToMany(targetEntity="App\Entity\CrmItems", mappedBy="company")
* @ORM\JoinColumn(nullable=false, name="`CompanyID`", referencedColumnName="`company_id`")
*/
private $crmItems;
Entity/CrmItems.php
/**
* @ORM\ManyToOne(targetEntity="App\Entity\Companies", inversedBy="crmItems")
* @ORM\JoinColumn(nullable=false, name="company_id", referencedColumnName="`CompanyID`")
*/
private $company;
这里的问题是,一个公司可以有 11000 个项目。 因此,当我请求 http://localhost:8080/companies/2 时,出现了 502 错误
似乎 header 尺寸太大,与 X-Cache 自定义 header 尺寸有关。
我已经在网上搜索过 API 平台官方文档 https://api-platform.com/docs/v2.3/extra/troubleshooting/#upstream-sent-too-big-header-while-reading-response-header-from-upstream-502-error
解决方案似乎增加了 fastcgi 缓冲区。
# Bigger buffer size to handle cache invalidation headers expansion
fastcgi_buffer_size 32k;
fastcgi_buffers 8 16k;
我已经试过了,没有成功。
处理海量数据有什么技巧吗? API 平台是否支持关系型 collections 分页?
谢谢!
API Platform supports relational collections pagination?
我从不关注文档。
如果真的太大了,我会考虑其他的设计方式。为什么不为公司使用 CrmItems 和过滤器。这样你就可以对它们进行分页。