私は、asp.netアプリケーションで "悲観的なロック"のようなものを実装する経験のある人からアドバイスをいただきたいと思います。これは私が探している動作です:asp.netアプリケーションで「悲観的なロック」を実装するにはどうすればよいですか?
- ユーザーA開くために#313
- ユーザBは、注文#313を開こうとしたが、ユーザーAは、注文がX分間排他的に開か持っていたと言われています。私は前にこの機能を実装していないので
、私はいくつかの設計上の質問がある:
私が注文レコードに添付する必要がありますどのようなデータ- ?私が検討している:
- LockOwnedBy
- LockAcquiredTime
- LockRefreshedTime
を私はLockRefreshedTime <場合はロックを解除、レコード考えるでしょう(今 - 10分)。
- ロックが必要以上に長く保持されないようにするにはどうしますか?予期せず有効期限は切れません。
私はjQueryにとても慣れているので、クライアントスクリプトを利用するアプローチは大歓迎です。これは内部のWebアプリケーションなので、私は帯域幅/サイクルの使用にかなりリベラルなことができます。また、「悲観的なロック」がこのコンセプトの適切な用語であるかどうかも疑問です。
+1素晴らしい回答、ありがとうございます。より多くの反応を奨励するために、24時間未回答の質問を残しておきます。 –
ブラウザを開いたまま昼食/休暇に行く人には注意してください。ユーザーや管理者が他のユーザーのロックを解除するために何らかのUIが必要かどうかを検討します。 (経験から言えば) –