私のRailsアプリケーションでは、2人が同じケースに割り当てられないようにする必要があります。PGを使用したHerokuのRails/ActiveRecordは本当に遅いですか?
これは、ケースが既に割り当てられている場合は、「イベント」テーブルを調べることで行います。そうでなければ、それは割り当てられ、既に割り当てられているという行が作成されます。
これはすべて機能しますが、時にはそうでないこともあります。 2人が同じケースに同時にアクセスしようとすると(同じ数百ミリ秒で話している)、イベントテーブルが時間内に更新されないようです。
- ケースにUser1が割り当てられます。イベントテーブルに保存されます。
- User2は同じケースを割り当てるように求めます。このケースが既に割り当てられている場合は、[イベント - テーブル]をチェックします。 #1からの書き込みは、我々は、私がHerokuの上のPostgresとのRails 5.0.2を実行している#2
にチェックしている時点で登録されていないため、同じ場合は、ユーザ2に割り当てられている
この「イベント」テーブルとはなんですか?あなたのスキーマを表示できますか? 'Case'がデータベースの外部キーを持つ' assigned_user_id'カラムのようなものであれば、実際に何が起こって実際に問題が発生するのかは分かりません。最悪のケースでは、「フォームを保存する」2番目の人は、関係を上書きせずにケースを「盗む」かもしれませんが、それを問題と見なしても解決するより複雑なものです。 –