【问题标题】:Youtube API Consumption & CachingYoutube API 消费和缓存
【发布时间】:2013-06-18 01:27:19
【问题描述】:

我正在使用 youtube_it gem 使用 youtube API。而这个 gem 使用 Faraday gem 作为适配器,而不是直接使用 Net::http。您已经知道发出这样的远程请求至少需要几秒钟?现在,由于我无法直接访问 Net::http 库,我将如何在我的应用中实现缓存?这是从 youtube 获取视频的示例请求。

      #Authentication
     $ @client = YouTubeIt::OAuth2Client.new(client_access_token: "access_token", client_refresh_token: "refresh_token", client_id: "client_id", client_secret: "client_secret", dev_key: "dev_key", expires_at: "expiration time")

        #Request
      @videos= @client.videos_by(:query => "penguin").videos #=>returns array of videos

【问题讨论】:

    标签: ruby-on-rails ruby-on-rails-3 caching ruby-on-rails-3.1 youtube-api


    【解决方案1】:

    您可能可以使用Memcache 来完成此操作,同时键入查询和企鹅的组合。您必须自己做更多的跑腿工作,但我发现编写自己的缓存通常对我来说更好,因为如果过早开启缓存会导致大量错误。

    以下是您的代码可能执行的操作:

    1. 检查缓存中的@videos。由访问令牌和查询的串联键控。
    2. 如果缓存未命中,请执行提取并将结果存储在缓存中。
    3. 如果缓存命中,则返回缓存中的内容。反序列化,并将其存储在@videos

    一个简单的问题:你让@client 成为实例变量有什么原因吗?您可能在控制器中执行此操作,而视图中不需要此操作,因此作为一般原则,您应该限制视图可用的范围。

    【讨论】:

      猜你喜欢
      • 2019-02-26
      • 2015-04-12
      • 2017-09-10
      • 2013-01-05
      • 1970-01-01
      • 2012-09-17
      • 2017-11-13
      • 2015-07-16
      • 2019-08-01
      相关资源
      最近更新 更多