【问题标题】:Tracking activities best practice in Ruby on RailsRuby on Rails 中跟踪活动的最佳实践
【发布时间】:2016-02-19 11:44:20
【问题描述】:

我想在数据库中保存产品或帖子视图以及其他元数据,例如谁查看了对象、推荐、时间等。

所有活动都将用于推荐引擎、更新表格和更多后台工作。

主要关注的是速度,无论是用户体验还是 SEO。

我带来了 3 种方法:

  1. 从数据库中读取记录,并编写一个活动(2 交易)。
  2. 不是读​​取,而是更新视图的记录(1 个事务)。
  3. 读取记录并将活动对象发送到 Redis 或 RabbitMQ。

我正在使用 Ruby on Rails 和 PostgreSQL。

第一种方法比第二种方法快吗? 对于小型 Web 应用,第 3 个选项是否过大?

【问题讨论】:

  • 你为什么不使用公共活动宝石
  • @kajal 这不是我想要的。我认为第三种解决方案在性能和可用性方面是最好的。我需要将数据发送到 API

标签: ruby-on-rails logging rabbitmq background-process recommendation-engine


【解决方案1】:

对于性能和其他可扩展性,请使用选项 #3 中的 redis 或 rabbitmq。

在确定何时使用消息队列时,应用程序的大小并不重要。相反,系统需求决定了这一点。

为用户存储视图和活动是一个很好的例子,说明何时应该使用队列来保持原始 http 请求的速度。

进行一次网络调用以将事件数据发布到rabbitmq,并拥有尽可能多的消费者,以便在后台记录数据库中的所有事件数据。

与此同时,用户已经在愉快地查看您的网页,而所有这些都发生在另一台服务器上,在其他地方。

【讨论】:

    猜你喜欢
    • 2011-09-29
    • 2010-09-08
    • 1970-01-01
    • 2017-06-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-10-03
    • 1970-01-01
    相关资源
    最近更新 更多