【发布时间】:2010-11-22 04:35:08
【问题描述】:
不,我不是想看看我可以在一个问题标题中加入多少流行语。
我正在通过我的 PHP 应用程序中的 cURL 向某些 Web 服务发出 REST 请求。这些请求需要经常发出,因为大部分应用程序都依赖于这个 API。但是,请求存在严重的延迟(2-5 秒),这让我的应用看起来非常缓慢。
虽然我建议在 Memcached 中缓存这些请求的解决方案已经完成一半,但我仍然对应用程序中出现的这种延迟不满意。
所以我的想法是:我可以在后台实现 AJAX 长轮询,这样用户就不会完全体验到延迟。 REST 请求/Memcache 查找将全部通过 AJAX 以设定的时间间隔完成。
但这对我来说真的很新鲜,我不确定这是否是最好的方法。如果我走在正确的轨道上,我知道 PHP + Apache 不能很好地处理这样的事情。但是 PHP 是我知道的唯一语言。理想情况下,我想在 Python 中设置 Tornado 之类的东西,但我不确定我现在是否过度设计。
这里的任何想法都会有所帮助并非常感谢。
【问题讨论】:
-
REST 请求和您的 Web 服务之间的距离是多少?换句话说,延迟是由网络引起的,或者只是其余的请求很慢。您是否考虑过 REST 请求的缓存预热?
-
@ajreal,什么是缓存预热?
-
预热是预加载一组数据,以便使用来自 REST 的有效数据填充内存缓存。这意味着,您可以运行后台作业来预取这些 REST URL,而不是让您的应用程序确定哪个 REST URL。您可以使用数据库或文件来跟踪您在应用程序中执行的 REST URL。
标签: php jquery ajax rest long-polling