답변

2

하는 결과가 없습니다. 그러나 이것이 조작의 원 자성을 보장하지는 않습니다. 두 사람의 업데이트 문제를 피하기 위해 레코드를 "잠가"해야 할 수도 있습니다.

this excellent article을 참조하십시오. 그것은 redis-objects 보석에 관한 것이지만 처음 두 부분은 ActiveRecord로 문제와 솔루션을 완벽하게 설명합니다.

1

짧은 대답 : 아니오. Cédric이 언급했듯이 Rails는 거래 내에서 counter_cache을 업데이트하므로 동일한 레코드를 업데이트하는 백그라운드 프로세스가 있다고 가정하면 레코드에 with_lock 블록을 사용하여 두 업데이트를 실행하지 않으면 교착 상태 오류가 발생합니다.