De repente algunas generaciones de plan tomaban hasta 2 segundos si una combinación tiene muchos "requisitos escondidos". Ahora se hace de manera más inteligente para evitar estos casos. (closes #405)
También hay algunos casos muy degenerados en que el solver podía estar un minuto entero encontrando la malla óptima óptima entre mallas óptimas. Apliqué un timelimit de 1.5 segundos en el solve de una sola malla para estos casos.
Cachear la información de estudiantes en Redis en lugar de en memoria. Permite que se haga 1 sola request a SIDING en lugar de 1 por worker. (closes #404)
Tengo sospechas que casos como estos eran la principal razón por la que el backend se caía de vez en cuando, y espero que con esto se arregle.
¿Qué se implementa?
De repente algunas generaciones de plan tomaban hasta 2 segundos si una combinación tiene muchos "requisitos escondidos". Ahora se hace de manera más inteligente para evitar estos casos. (closes #405)
También hay algunos casos muy degenerados en que el solver podía estar un minuto entero encontrando la malla óptima óptima entre mallas óptimas. Apliqué un timelimit de 1.5 segundos en el solve de una sola malla para estos casos.
Cachear la información de estudiantes en Redis en lugar de en memoria. Permite que se haga 1 sola request a SIDING en lugar de 1 por worker. (closes #404)
Tengo sospechas que casos como estos eran la principal razón por la que el backend se caía de vez en cuando, y espero que con esto se arregle.