【发布时间】:2012-08-14 04:45:46
【问题描述】:
在视频控制器 - 显示动作中,我尝试了两种情况。第一个使用increment_counter,直接写入db:
Video.increment_counter(:views_count, @video.id)
第二种方法使用save方法。
@video.views_count = @video.views_count + 1
@video.save
在 ApacheBench 中,我会这样做:
ab -n 100 -c 10 http://127.0.0.1:3000vidoes/18
视频 ID 为 18。我确保在每次 ab 运行时通过Video.find(18).update_attribute(:views_count, 18) 重置views_count。
在两种情况下运行 ApacheBench 后,views_count 始终保持在 100。我认为 increment_counter 比 save 方法更准确,因为它直接写入数据库。
我的卧推是否正确?
【问题讨论】:
标签: ruby-on-rails ruby-on-rails-3 concurrency apachebench