ActiveRecord Foo
模型有一個字段.hits
,每次在網頁上顯示Foo的實例時,該字段會遞增。在Rails 3.2中,多個用戶增加同一個計數器的最安全方法
當一個應用程序有多個Web進程(多個Heroku dynos),因此多人可能會同時查看同一頁面,確保同一實例的兩個併發頁面視圖最安全(但仍然是高性能)的Foo做正確的事情(例如,增加櫃檯兩次)?
ActiveRecord Foo
模型有一個字段.hits
,每次在網頁上顯示Foo的實例時,該字段會遞增。在Rails 3.2中,多個用戶增加同一個計數器的最安全方法
當一個應用程序有多個Web進程(多個Heroku dynos),因此多人可能會同時查看同一頁面,確保同一實例的兩個併發頁面視圖最安全(但仍然是高性能)的Foo做正確的事情(例如,增加櫃檯兩次)?
什麼你指的是術語「原子遞增」 ......
要回答你的問題,使用以下將得到完成任務:
increment_counter
- http://api.rubyonrails.org/classes/ActiveRecord/CounterCache/ClassMethods.html#method-i-increment_counter
update_counters
- http://api.rubyonrails.org/classes/ActiveRecord/CounterCache/ClassMethods.html#method-i-update_counters
快速谷歌返回這篇文章是在足以解釋爲什麼:http://www.alfreddd.com/2011/01/atomic-increment-in-rails.html
偉大的答案 - 謝謝! – jpwynn