3

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

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

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

current_sign_in_at - 该人最近一次登录我的网站。(使用它,我可以获得访问我的网站并登录的人数。)

但我错过了访问该网站并已登录的人数。

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

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

非常感谢。

4

1 回答 1

0

可能的解决方案:

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

  • 您可以执行您提到的操作,每次收到请求时将用户的最后一次活动时间存储在数据库中,如果每分钟获得 1000-2000 次点击,您可能希望将其存储在内存存储中,如 redis反而。如果用户将从不同的路径访问您的网站,而不仅仅是根 url,您可以在应用程序控制器中创建一个 after_filter,以使用用户的当前时间更新 redis 存储。

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

于 2012-12-14T23:28:17.597 回答