【问题标题】:Getting most recent paths visited across sessions in Rails app在 Rails 应用程序中获取跨会话访问的最新路径
【发布时间】:2014-05-03 01:25:42
【问题描述】:

我有一个没有数据库和控制器的简单 rails 应用程序。它使用 High Voltage 进行路由查询,然后使用 javascript 使用 params 哈希获取数据。

典型的 URL 如下所示:

http://example.com/?id=37ed660aa222e61ebbbc02db

我想获取用户最近访问过的十个唯一 URL,并将它们传递给视图。请注意,我说的是用户,最好是跨并发会话。

有没有办法使用 ActiveSupport::Notifications 或 Production.log 来检索它?任何示例,包括代码最好的位置,将不胜感激!

【问题讨论】:

    标签: ruby-on-rails ruby activesupport high-voltage


    【解决方案1】:

    我认为 Redis 非常适合这个。它是 NoSQL 键值存储数据库之一,但它对作为有序列表、队列等的值部分的支持应该可以在访问 FIFO 列表时轻松存储唯一的 url,限制该列表的大小(丢弃列表“旧”端的 url),并检索最近的 N 个 url 以传递给您的视图。您的列表应该足够小,以使其全部保留在内存中并且非常快。您可能也可以使用 memcached 或 mongo 或另一个来做到这一点;我认为最好是解决方案将存储的值保留在内存中。

    如果您还没有使用 redis(或类似的),那么为这个功能设置和维护它可能看起来有点过头了。但您也可以通过将其用于缓存、后台作业处理 (Resque / Sidekiq) 以及可能在您的应用程序中进行的其他操作,从而为自己付出代价。

    【讨论】:

    • 谢谢!这是一个很好的引导!我以前从未使用过 Redis,但看起来它可以解决问题!
    猜你喜欢
    • 1970-01-01
    • 2011-04-27
    • 2013-10-11
    • 2017-10-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多