ruby-on-rails-3 - 使用 Devise 计算每日活跃用户

标签 ruby-on-rails-3 devise

我是一名 RoR 开发人员,我想为我的网站计算 DAU。我所说的 DAU 是指:

DAU - 访问我的网站并登录或访问该网站并已经登录的用户总数。

我实现了 Devise在我的网站上,因为它跟踪 current_sign_in_at。后来发现这些属性的意思是:

current_sign_in_at - 此人登录我的网站的最近时间。 (使用它我可以获得访问我的网站并登录的人数。)

但我漏掉了访问该网站并且已经登录的人数。

我发现实现它的方法之一是在延迟作业中触发一个函数,该函数在调用根操作和加载我的网站主页时更新时间戳。但是由于我的网站每分钟大约有 1000 - 2000 次点击,我猜这个功能将成为瓶颈。

任何人都可以建议我实现它的最佳方法。

非常感谢。

最佳答案

可能的解决方案:

  • 使用 Google Analytics(自定义变量)、KISSmetrics(访问者身份)或 Mixpanel(distinct_id)等服务,并将用户 ID 发送给它们,您就可以找到每日活跃用户。

  • 您可以像您提到的那样做,每次收到请求时将用户的最后事件时间存储在数据库中,如果您每分钟获得 1000-2000 次点击,您可能希望将其存储在而是像 redis 这样的内存存储。如果用户将从不同的路径访问您的网站,而不仅仅是根 url,您可以在应用程序 Controller 中创建一个 after_filter,用用户的当前时间更新 redis 存储。

  • 如果您有兴趣查看更多内容,而不仅仅是将来的每日活跃用户,则值得在另一个数据库中为您的用户创建一个日志。我再次建议在 application_controller 中使用一个 before 或 after_filter,它将作业排队以存储时间、user_id 以及您可能感兴趣的任何其他数据。我正在使用与我的 ActiveRecord MySQL 数据库分开的 mongo db 来执行此操作。

关于ruby-on-rails-3 - 使用 Devise 计算每日活跃用户,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13761904/

相关文章:

ruby-on-rails-3 - 部署者弗拉德 : Troubles Migrating

ruby-on-rails-3 - CDN Sumo heroku 插件和字体 Assets

ios - 无需设计的 Rails + iOS 身份验证

ruby-on-rails - Ruby on Rails 3 和 Google 图书搜索

ruby-on-rails - 未初始化常量 MiniMagick

jquery:install 在 Rails 中不起作用

ruby-on-rails - rails : Namespacing vs Engines?

ruby-on-rails - "authenticate_user!"方法的设计实现在哪里?

ruby-on-rails - 如果用户模型已经存在,是否可以添加设计?

ruby-on-rails - OmniAuth::NoSessionError - 您必须提供 session 才能使用 OmniAuth。 (在设计中配置)