在我的應用程序中,我有兩個幾乎同時運行並更新相同AR模型的進程。Yii ActiveRecord - 是否有辦法只更新髒屬性?
當我看到一些這樣的過程沒有完成時,我正面臨着這個錯誤,但是單獨調試它們並沒有給出任何錯誤。
然後我理解的是,問題可能發生在下一情況下:
- 方法A選擇行X
- 方法B選擇行X
- 方法B更新行X
- 方法A的更新行X
在描述的情況下,進程A將覆蓋進程B寫入的所有內容。
B和A都更新不同的屬性。
有沒有辦法避免這種覆蓋?是否有一些機制讓AR只更新'髒'屬性而不是所有的模型屬性?
請不要在不使用AR的情況下向我解釋解決方案。我明白。但我想聽聽是否有一些解決方案可以讓我正確地使用AR來完成所需的更新。
謝謝。
你不使用AR的交易測試,因此可能? –
描述的過程請 – sakhunzai
@AliMasudianPour當然,每個進程使用交易,因爲他們都做與其他web服務撥號有關的複雜工作。但TR沒有解決問題 –