Tengo una aplicación web en el trabajo que es similar a un sistema de trabajo de tickets. Algunos usuarios ingresan nuevos problemas. Otros trabajadores eligen y resuelven problemas. Todos los datos se mantienen en el servidor MS SQL 2005.Cómo evitar que los usuarios trabajen en la misma fila
Los usuarios que trabajan para resolver problemas van a una página donde pueden ver problemas abiertos. Debido a que hasta veinte personas pueden mirar esta página al mismo tiempo, un problema potencial que tuve que abordar fue qué sucede si alguien selecciona un problema que alguien más eligió justo después de cargar la página.
Para resolver esto, hice dos cosas. En primer lugar, la vista de cuadrícula que muestra los problemas para seleccionar utiliza un temporizador AJAX para actualizar cada segundo. Una vez que se ha seleccionado un problema, desaparece un segundo más tarde como máximo. En caso de que seleccionen uno dentro de este segundo, recibirán un mensaje pidiéndoles que elijan otro.
El problema es que la parte AJAX de esto está enviando demasiadas actualizaciones (esto es lo que asumo) y está afectando el rendimiento de la página y la base de datos. Además, las actualizaciones no se realizan cada segundo. Creo que el temporizador no es confiable cuando se trabaja para activar procedimientos almacenados.
Tiene que haber una mejor manera, pero parece que no puedo encontrar una. ¿Alguien tiene experiencia con una situación como esta o tiene sugerencias para evitar que varios usuarios seleccionen el mismo registro para mantener? Realmente no quiero deshabilitar la parte AJAX por completo porque siento que el mensaje solo haría que la aplicación sea frustrante de usar.
Gracias,
+1 para la asignación al azar, ¡exactamente lo que iba a sugerir! –
La orden aleatoria no funcionará. Los tickets se priorizan por vencimiento del nivel de servicio. –
¿Cuál es la base de la caducidad del nivel de servicio? ¿Es eso una determinación basada en el tiempo? Dependiendo de su número, puede agruparlos al minuto más cercano (o quince minutos) y que sean "lo suficientemente buenos". De todos modos, sé que pedir una excepción a la priorización y ser políticamente problemático, pero si * puedes *, puede que valga la pena. –