Me gustaría obtener algunos consejos de cualquier persona con experiencia en la implementación de algo así como "bloqueo pesimista" en una aplicación asp.net. Este es el comportamiento Busco:¿Cómo implemento el "bloqueo pesimista" en una aplicación asp.net?
- usuario abre un orden # 313
- intentos usuario B para abrir la orden # 313, pero se dijo que el usuario A ha tenido el fin abrió exclusivamente para X minutos.
Ya que no he implementado esta funcionalidad antes, tengo un par de preguntas de diseño:
- ¿Qué datos deben adjuntarse al expediente de la orden? Estoy considerando:
- LockOwnedBy
- LockAcquiredTime
- LockRefreshedTime
yo consideraría un registro bloqueado si el LockRefreshedTime < (Now - 10 min).
- ¿Cómo puedo garantizar que los bloqueos no se mantengan durante más tiempo de lo necesario pero que no caduquen inesperadamente tampoco?
Estoy bastante cómodo con jQuery, por lo que los enfoques que hacen uso del script del cliente son bienvenidos. Esta sería una aplicación web interna, así que puedo ser bastante liberal con mi uso de ancho de banda/ciclos. También me pregunto si el "bloqueo pesimista" es un término apropiado para este concepto.
+1 gran respuesta, gracias. Dejaré la pregunta sin respuesta durante 24 horas con la esperanza de fomentar más respuestas. –
Tenga cuidado con la persona que va a almorzar/vacaciones mientras deja su navegador abierto. Considere si necesita algún tipo de IU para que los usuarios o un administrador rompan las cerraduras de otras personas. (Hablando desde la experiencia) –