跟踪Ruby on Rails中的活动最佳实践

时间:2016-02-19 11:44:20

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

我想在数据库中使用其他元数据保存产品或发布视图,例如谁查看了对象,引荐,时间等。

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

主要关注的是速度,用户体验和SEO。

我选择了3种方法:

  1. 从数据库中读取记录,然后编写活动(2 交易)。
  2. 而不是阅读,更新视图的记录(1个事务)。
  3. 读取记录并将活动对象发送给Redis或RabbitMQ。
  4. 我在PostgreSQL上使用Ruby on Rails。

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

1 个答案:

答案 0 :(得分:0)

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

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

为用户存储视图和活动是您何时应该使用队列以保持原始http请求快速的一个很好的示例。

进行单个网络调用,将事件数据发布到rabbitmq,并拥有所需数量的消费者,以便在后台记录数据库中的所有事件数据。

同时,用户很高兴看到你的网页,而所有这些都发生在另一台服务器上,在其他地方。