Estoy construyendo una aplicación con los siguientes criterios:pesimista frente concurrencia optimista (Bloqueo contra Comentarios)
- elementos de trabajo: los tejidos que necesitan ser resueltos de forma manual a través de la web por los usuarios (forma corta una página)
- que varios usuarios trabajen 'elementos de trabajo'
- Cada usuario tiene una cola de 'elementos de trabajo'
- Hay una búsqueda que permite a los usuarios ver 'elementos de trabajo' y asignar 'elementos de trabajo' a sus colas
- Usuarios puede sacar 'elementos de trabajo' de las colas de otras personas asignándoselos a sí mismos
Nota: los 'elementos de trabajo' se trabajan solo una vez. Esta no es una página wiki, es más un ejercicio de coincidencia que solo debe realizarlo un usuario. Una vez que el 'elemento de trabajo' se ha trabajado, se ha ido del sistema (aparte de algunas auditorías/informes), algo así como un sistema de seguimiento de errores
¿Qué opción crees que es mejor? ¿Puedes citar alguna aplicación convencional que apoye tu opinión?
Opción 1:
- Cuando el usuario A va a ver o trabajar un 'elemento de trabajo', el 'elemento de trabajo' se bloquea.
- Cuando otros usuarios van al 'elemento de trabajo' después de que el Usuario A abre el 'elemento de trabajo', solo podrán ver el 'elemento de trabajo'. Ellos no pueden escribir
- El bloqueo expira después de n minutos, momento en el que otro usuario puede bloquear el 'elemento de trabajo'.
Opción 2:
- Cualquier usuario puede tirar de un 'elemento de trabajo' sin bloquearlo.
- Si el usuario A trabaja el 'elemento de trabajo' enviando el formulario y el usuario B trabaja el mismo 'elemento de trabajo', entonces el trabajo del usuario A entrará en vigencia en la base de datos y se informará al usuario B de que sus cambios no afectar porque otro usuario ha modificado el 'elemento de trabajo'.
Personalmente me gusta la opción 2. Pensamientos por favor?
gracias, ¿sabe lo que utilizan la mayoría de los sistemas de seguimiento de errores? pesimista u optimista, asumiría lo último – ckarbass
Disculpe, no sé, pero supongo que como la mayoría de los sistemas de seguimiento de errores están basados en la web, y la web (en su mayoría :) no tiene estado, entonces probablemente se use el bloqueo optimista. – si618