我们有一个客户端服务器架构,客户端使用 Angular,服务器端使用 Apache2 PHP PDO 和 MySQL。服务器端向客户端公开 API,为客户端提供要显示的数据。
一些观察:
某些 API 调用可能需要很长时间才能计算并返回响应。
服务器端似乎在任何给定时间处理每个客户端的单个请求(我只看到在 mysql 中执行的一个相应查询),该限制来自 apache 或来自 mysql,因为前端肯定会并行发送请求。
前端取消不再相关的请求(正在获取的数据将不可见)
似乎前端取消的请求不会在服务器端取消并继续运行,我认为即使它们排队,它们在轮到时仍然会运行(即使它们在客户端被取消)
需要帮助理解:
没有让所有请求(或至少 X>1 个请求)并行运行的确切原因是什么?可以改变吗?
我应该在 apache 或 mysql 中更改哪些配置来克服这个问题?
有没有办法让 apache 删除已取消的请求?至少那些仍在排队且未开始的?
谢谢!
编辑
在@Markus AO评论之后(感谢 Markus!!!),这是与会话阻塞相关的...希望我之前知道这一点!
繁花如伊