不,我并不是想看看我可以在一个问题标题中放入多少流行语。

我正在 PHP 应用程序中通过 cURL 向某些 Web 服务发出 REST 请求。由于大部分应用程序都依赖于此 API,因此需要经常发出这些请求。然而,请求存在严重的延迟(2-5 秒),这让我的应用程序看起来慢得要命。

虽然我已经找到了解决方案并建议在 Memcached 中缓存这些请求,但我仍然对应用程序中出现的这种延迟不满意。

所以这是我的想法:我可以在后台实现 AJAX 长轮询,这样用户就不会直接体验到延迟。REST 请求/Memcache 查找将通过 AJAX 以设定的时间间隔完成。

但这对我来说真的很新鲜,我不确定这是否是最好的方法。如果我走在正确的轨道上,我确实知道 PHP + Apache 不会很好地处理这样的事情。但 PHP 是我唯一知道的语言。理想情况下,我想在 Python 中设置类似 Tornado 的东西,但我不确定我现在是否过度设计。

这里的任何想法都会有帮助并且非常感激。

有帮助吗?

解决方案

这是一个相当快的周转,但我回过头来通过回显来分析我的应用程序 microtime() 贯穿相关流程。事实证明,我没有并行化我的 cURL 请求,这才是我受到真正打击的地方。完成此操作大约需要 2 秒,这意味着连续完成每个 cURL 请求时会出现很长的延迟。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top