如何为缓存的 Ruby 搜索设置过期时间?

森柏林

我有一个函数,它返回一个 ID 列表,在Rails 缓存指南中我可以看到可以在缓存结果上设置过期,但我实现缓存的方式有所不同。

def provide_book_ids(search_param)
      @returned_ids ||= begin
        search = client.search(query: search_param, :reload => true)
        search.fetch
        search.options[:query] = search_str
        search.fetch(true)
        search.map(&:id)
      end
    end

如上所述,设置 10 分钟缓存到期的推荐方法是什么?

乔尔·布鲁姆
def provide_book_ids(search_param)
  @returned_ids = Rails.cache.fetch("zendesk_ids", expires_in: 10.minutes) do
      search = client.search(query: search_param, :reload => true)
      search.fetch
      search.options[:query] = search_str
      search.fetch(true)
      search.map(&:id)
    end
 end

我假设这段代码是某个请求-响应周期的一部分,而不是其他东西(例如,长时间运行的工作人员或在您的应用程序中初始化一次的某个类。在这种情况下,您不想直接使用 @returned_ids 但是而是调用 provide_book_ids 来获取价值,但据我所知,这不是你的情况,所以上面提供的方法应该可以工作。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

使用mapped_mset时,如何在Redis的ruby客户端中设置过期时间?

如何设置 UserDefaults 时间过期?

如何为所有Ignite缓存设置到期时间?

如何为Pushgateway设置指标过期的保留时间?

如何设置NSURLRequest缓存过期?

如何设置Big Query表的过期时间?

如何设置特定会话的过期时间

如何为外部字体请求设置 AWS Cloudfront 缓存?

如何为网络程序包设置DNS缓存?

如何为完全缓存的wordpress网站优化SQL设置

如何为Apache ignite缓存设置查询超时?

缓存Hibernate本机查询-如何为特定查询设置最大生存时间?

改造2-如何为不同的端点设置动态缓存时间

如何为 symfony5 redis 缓存池设置命名空间和项目到期时间

如何为通过Google Apps脚本创建的BigQuery中的新表设置过期时间?

如何在 Spring Boot 中为 @Cacheable 设置过期时间?

使用jjwt时如何设置jwt的过期时间

使用AuthenticationProvider登录时如何设置cookie过期时间

如何设置asp.net身份cookie过期时间

在 Angular 1.2.32 中如何设置 cookie 的过期时间?

如何设置DNS缓存时间?

如何设置 Ruby on Rails?

如何防止Redis中的缓存覆盖过期时间

如何获取laravel(文件)缓存的密钥过期时间?

如何在Angular $ cacheFactory中的缓存上定义过期时间

有没有办法为 Django 缓存锁设置过期时间?

弹簧缓存设置有效地过期时间-咖啡因

如何为上传到Google存储桶中的新图像设置默认的缓存控件

如何为通过Active Storage上传的S3文件设置缓存控件?