2015-11-20 61 views
0

在我的Rails 4应用程序中,我使用metainspector gem来允许用户显示来自它们发布到表单的URL的元数据。Rails 4:metainspector gem减慢应用程序的运行速度

由于我安装了这个gem,每次尝试访问我自己的应用程序的页面时,其中的元数据都是从另一个网站中提取的,所以加载时间显着增加。

加载时间增加从小型和本地网站难以察觉的延迟,几乎冻结大型和外国网站的应用程序。

给你一个想法,一个普通页面的加载时间通常在400毫秒以下:当我们用metainspector提取数据时,它可能会超过30,000毫秒(我用rack-mini-profiler测量这些加载时间)。

我在网上找不到类似的问题。

这里就是我想弄清楚:

  1. 这听起来是正常或做了错误的方式,我设置的东西吗?

  2. 有没有办法加快加载时间metainspector?例如通过caching responses

  3. 如果没有办法加快加载时间,我是否应该实现timeout限制并显示错误消息?

回答

1

这是完全正常的,确切的说这不是metainspector是什么拖慢你的应用程序,那就是你要请求外部URL的事实。

你应该尝试缓存使用metainspector内置的缓存机制的反应,但也有可能,如果这个移动到异步工作使用背景队列,保存或缓存结果。

+0

非常感谢您的有趣和相关的答案。你是完全正确的。使用缓存是一种选择。我走了另一条路线,虽然:我创建了一个新的模式和存储metada在里面,所以每次我需要的信息的时候,我不再请求外部URL,而只是从数据库中提取数据。 –

+1

是的,这也是一个很好的选择,也许你只需要不时刷新它。 – jaimeiniesta

+0

再次绝对正确。非常感谢。 –

相关问题