Pregunta

Estoy tratando de averiguar cómo se podría establecer una base de datos y / o el modelo con el fin de manejar varias insignias. Vamos a tomar el desbordamiento de pila insignias como un ejemplo. Hay reglas diferentes para cada uno y algunos podrían ser sólo una variable diferente (como 10 comentarios vs 100 comentarios).

Mi pregunta es ¿cómo se configura este tipo de validación / verificación dentro de una aplicación? En caso de cualquier distintivo de tener su propio método?

¿Fue útil?

Solución

Ser que corre tan fuera de SQL Server, Agente Servidor de tareas de SQL para ejecutar periódicamente las estadísticas tabulados. El procedimiento almacenado (s) en el trabajo sería insertar en un / tabla de insignias, etc., cuando se cumplen los criterios.

Los disparadores sería otra opción, pero su ejecución no puede ser retrasado por el alcance de varios usuarios.

Otros consejos

Esto es cómo iba a ponerlo en práctica si necesito:

Voy a poner un poco de gestor de colas (hay una gran cantidad de este tipo de software) y escribo un corredor, que procesará los mensajes de la cola.

Cada vez que se produce cualquier caso, como por ejemplo: que ha visto un tema, editado su comentario, que ha editado su respuesta, que ha editado otra persona respuesta, upvoted, etc, etc - recoja uno más mensajes, la descripción del evento. Sí, será realmente enorme cantidad de mensajes allí.

Después de recopilar esa enorme cantidad de mensajes -. Puede empezar un corredor que va a procesar mensajes de horario o en tiempo real

Con este esquema se podría extender a un corredor como insignias complejo como usted quiere.

Me imaginaría algún tiempo real son calculados, mientras que otros se calculan en los procesos que se ejecutan de forma intermitente.

Por ejemplo, para la insignia que aparece cuando su respuesta obtiene 10 upvotes, que podrían calcularse en tiempo real con poco impacto en el rendimiento.

Por otro lado, para la insignia que comprueba si se golpea la tapa reputación x número diario de los tiempos, es probable que quiera hacer eso como una especie de trabajo por lotes, ya que sólo se comprueba al final de cada día.

La principal preocupación es mantener las cosas en marcha rápidamente. desbordamiento de pila recibe miles (tal vez decenas de miles) de preguntas al día, con probablemente cientos de miles de comentarios. Todo lo que no es trivial para calcular debe ejecutarse en un proceso separado. Se mantiene el apretado funcionalidad central, limitado, y limpia, lo que permite un alto rendimiento. Ejecución de cálculos complejos en los procesos fuera del sistema de fijación central permite que lo haga sin afectar a la capacidad del usuario para usar el sitio. Si una tarea es lo suficientemente complejo, se puede escalar horizontalmente con sólo ejecutar el mismo proceso a través de múltiples máquinas.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top