5
A
回答
2
當使用counter_cache,記錄插入和計數器更新在同一事務中完成。但是這並不能保證操作的原子性。除了避免兩人更新問題之外,您可能還需要「鎖定」您的記錄。
參見this excellent article。它關於redis-objects gem,但前兩部分完美地解釋了ActiveRecord的問題和解決方案。
1
簡答:沒有。正如Cédric提到的那樣,Rails更新了事務內部的counter_cache
,所以如果你說有一個後臺進程更新同一個記錄,你會發現自己會遇到死鎖錯誤,除非你使用記錄上的with_lock
塊來運行這兩個更新。
相關問題
- 1. 安全模板(Ruby on Rails)
- 2. Ruby on Rails和安全
- 3. Ruby on Rails API安全
- 4. Ruby on Rails - 緩存變量
- 5. Ruby on Rails - 類緩存?
- 6. 數據庫事務和高速緩存
- 7. dalli on heroku不高速緩存
- 8. Ruby on Rails的全球CACH
- 9. 如何緩存/加速Ruby on Rails中的下拉框數據
- 10. Ruby on Rails中的angular.js安全性
- 11. Ruby on Rails計數器緩存錯誤
- 12. Ruby on Rails的 - 從緩存DIV
- 13. 用Ruby on Rails緩存登錄表單
- 14. Ruby on Rails裝飾器緩存結果?
- 15. Rails 3高速緩存轉儲錯誤
- 16. Apache反向高速緩存代理 - 爲什麼不高速緩存?
- 17. 在Ruby on Rails中安排事件
- 18. 緩存安全信息安全嗎?
- 19. 安裝Ruby on Rails
- 20. on Rails的3.1 Ruby on Rails的緩存圖像錯誤
- 21. Ruby on Rails Windows開發現在認爲是安全的嗎?
- 22. Ruby on Rails快速入門
- 23. Ruby On Rails的事務操作
- 24. Ruby on Rails安裝服務器
- 25. Ruby on Rails - 如何緩存API服務響應的結果?
- 26. Rails的高速緩存未到期
- 27. Rails中的高速緩存標頭
- 28. 保存Ruby on Rails
- 29. Ruby on Rails:高級搜索
- 30. Ruby和Rails或Ruby on Rails