after_filter或Sidekiq用于管理page_view信息

时间:2014-09-13 04:26:21

标签: ruby-on-rails performance ruby-on-rails-3.2 sidekiq

我有一个Rails应用程序,目前我为每个API访问创建一个PageView对象。我们的API仍然非常快(50%的请求都是<50ms),但大部分时间花在将PageView写入我们的MySQL实例上。我正在考虑使用Sidekiq,但问题是传递了更大的对象,而在Sidekiq中强烈反对 - https://github.com/mperham/sidekiq/wiki/Best-Practices#1-make-your-jobs-input-small-and-simple

什么是更好的选择?我们目前关于after_filter的解决方案还可以,但只是希望获得更高的性能。

THX


编辑1

尝试没有这样的场景(授予了一个孤立的1个请求,但使用的是云mysql提供程序):

enter image description here

1 个答案:

答案 0 :(得分:1)

mysql真的很快。您的时间可能花费在AR验证或回调中。下拉到原始数据库连接和SQL以减少Ruby的数量:

ActiveRecord::Base.connection_pool.with_connection do |conn|
  conn.insert "INSERT INTO ..."
end