私はActiveRecordの楽観的なロックと悲観的なロック機能について読んで、私はそれらを私のRailsコードで全く使用していません。どのような使い方を知っておくのが良い経験則ですか? 2人が同じオブジェクトを編集しようとしているときは、私が推測する1つの例になります。ActiveRecordのロックについてはいつ心配する必要がありますか?
1
A
答えて
1
同じデータを同時に変更することができ、変更が「勝つ」明確なルールがない場合は、同じ問題を解決する必要があります。これは、2人が同じオブジェクトを編集する時代のサブセットです。
一般的に、オプティミスティックロックは、競合が起こりそうにない場合には、人のオーバーヘッドが少なくて済みます。編集して、他の誰かがオブジェクトを変更したため、作業をやり直す必要があるということが時々あります。
競合が発生する可能性が高く、作業をやり直す労力が高く、ユーザーが長い間変更を続けることを望まない場合、敬意を表して信頼することができます。完了したらロックを解除します。
同じデータに興味のあるユーザーが比較的少ない場合にのみ、両方がうまく機能します。どちらのモデルも、コンフリクトが発生したときにユーザーに作業をやり直させるか、他の人が作業を完了するまで待つため、多数の同時編集が難しくなります。
コンフリクトが予想され、同じデータを操作するユーザーがごく少数の場合は、CQRSなどのより高度なアプローチを検討して、並行性の問題を解決したいと考えています。
関連する問題
- 1. このエラーログについて心配する必要がありますか?
- 2. NSUserDefaultsの衝突について心配する必要がありますか?
- 3. Node.jsのConcurrent Modificationについて心配する必要はありますか?
- 4. アプリケーションのタイムゾーンについて心配する必要はありますか?
- 5. iOSアプリケーションのスレッドセーフについて心配する必要はいつですか?
- 6. DirectShowフィルタの共有状態をロックすることについて、いつ心配する必要がありますか?
- 7. ActiveRecordトランザクションはいつ使用する必要がありますか?
- 8. Checkstyle:なぜ開発者としてそれについて心配する必要がありますか?
- 9. API 16+では非2のテクスチャについて心配する必要はありますか?
- 10. MySQLデータベースの負荷について心配する必要がありますか?
- 11. なぜCPythonのスレッドセーフティについて心配する必要がありますか?
- 12. ASP.NET MVC 3.コンテナの廃棄について心配する必要がありますか?
- 13. この422(Unprocessable Entity)エラーについて心配する必要がありますか? (Rails&Devise)
- 14. Webサービスから返されたURLの '&'について心配する必要があります
- 15. ウェブサイトの偽アカウント/ログインについて心配する必要がありますか?
- 16. フラッシュのスレッドの安全性について心配する必要はありますか?
- 17. Tomcat Spring Beanとの並行性について心配する必要はありますか?
- 18. LINQ(クエリ言語)のアップグレードパスについて心配する必要があります
- 19. トランザクション内でActiveRecordロックを実行する必要がありますか?
- 20. コードアクセスセキュリティ(CAS)について学ぶ必要がありますか?
- 21. アーキテクチャデザインパターンはいつ使用する必要がありますか?
- 22. wkWebViewはいつ使用する必要がありますか?
- 23. NSUserDefaultsDidChangeNotificationは、いつ実行する必要がありますか。
- 24. ストリームはいつ遅延する必要がありますか?
- 25. InverseBindingAdapterはいつ使用する必要がありますか?
- 26. モバイルアプリでスパムを心配する必要はありますか?
- 27. realm.close()はいつ呼び出す必要がありますか?
- 28. いつC#ベースクラスで辞書をロックする必要があるのですか?
- 29. いつオブジェクトをリリースする必要がありますか?
- 30. ブロックをいつコピーする必要がありますか?