获取Rails应用程序中跨会话访问的最新路径



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

一个典型的URL是这样的:

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

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

是否有一种方法来检索这个使用activessupport::Notifications或Production.log?任何示例,包括代码应该放在哪里,将非常感谢!

我认为Redis将非常适合这一点。它是NoSQL键值存储数据库之一,但它对值部分的支持是有序列表,队列等,应该可以很容易地在FIFO列表中存储唯一的url,因为它们被访问,限制该列表的大小(在列表的"旧"端丢弃url),并检索最近的N个url传递给您的视图。您的列表应该保持足够小,以便所有列表都可以保存在内存中并且非常快。你也可以用memcached或者mongo或者其他的;我认为这将是最好的,但如果解决方案保持存储值在内存中。

如果你还没有使用redis(或类似的),设置和维护这个功能似乎有点小题大做。但你也可以通过使用它来缓存,后台作业处理(Resque/Sidekiq),以及可能在你的应用程序中的其他事情,让它为自己付出代价。

最新更新