Datos en cache

Buenas tardes, estamos trabajando en la versión 2.8.3 de Guarani 3W 2 y observamos que los datos quedan almacenados en alguna cache.
Si actualizamos algún dato desde la aplicación de Gestión y queremos que se refleje en la aplicación web debemos esperar que pase un tiempo para que se vea dicho cambio.
Existe alguna variable en donde se pueda decir que los datos no sean cacheados?
Saludos
Marcela

Marcela, si es algo circunstancial mientras hacen pruebas, pueden ejecutar el comando limpiar_cache desde una consola, posicionados en el directorio ‘bin’:

directorio_proyecto/bin$ ./guarani limpiar_cache

Ahora, si desean como algo permanente que no se guarden determinados datos en caché, te pido si nos podés dar más información sobre la operación y consultas que no quieras que queden cacheadas así lo analizamos.

Gracias!

Hola Juliana, estamos haciendo pruebas, lo observamos en la siguiente situación:

[ol]- Ingresamos como alumno a 3W, vamos a la parte de inscripción cursada o a la de examen y vemos que faltan mesas o comisiones

  • Desde la aplicación de gestión creamos la comisión o mesa de examen faltante
  • Volvemos a la interfaz del alumno, presionamos F5 pero la comisión o mesa no aparecen en el listado que se muestra al alumno
  • Dejamos pasar un tiempo, volvemos a presionar F5 y ahi aparecen la nueva comisión o mesa[/ol]

Por ahora no lo ví en ninguna otra situación.

Muchas Gracias.

Marcela

Marcela, te pido que chequees lo siguiente:

Cuando ingresás a las operaciones, en la barra de herramientas para el desarrollador hay una opción que te permite verificar los accesos (lectura/escritura) a la base de datos y a la caché.
En la operación de Inscripción a Cursadas, deberías chequear por la consulta ‘lista comisiones’, y en la operación de Inscripción a Exámenes por ‘lista mesas’.
Te adjunto una imagen de ejemplo, con el ícono que debés clickear resaltado y la fila a chequear para el caso de Inscripción a Cursadas.

Cuando tengas la información (lista comisiones y lista mesas), te pido que nos digas los resultados así seguimos analizando el caso.

Gracias!


foro_cache.png

foro_cache.png

Marcela, es muy comun este comportamiento? Es decir que se creen comisiones o mesas de examen en medio de los períodos de inscripción?
Y si fuera asi, no creo que llegue a darse el caso que el alumno no ve una mesa de examen, en ese momento alguien crea la mesa de examen e inmediatamente despues de ello el alumno quiera inscribirse sin haber salido de la sesión. Lo mismo para comisiones.
Igualmente pueden bajar el tiempo definido para la actualización del cache de datos a un tiempo razonable como para minimizar estos casos.

Relacionado con el cache de datos de los controles que se corren en las inscripciones podras verificar que hay controles que se cachea el resultado para cada alumno y otros no. Tambien podrias verificar y modificar que controles queres que se cacheen y que no (Ver tabla par_controles en el campo cacheable, donde 1 = SI, 0 = NO). Desde el SIU salio con una configuración inicial de los que definimos cuaes podrian ser cacheable su resultado y cuales no, pero donde en cada instalacion podrian cambiarlo segun lo que necesiten.

Por ejemplo el contro “Es alumno Activo”, podría cachearse ya que es comun que el alumno este siempre activo o pasivo por un largo período de tiempo y durante el tiempo que dure la sesion ese estado no cambie en el alumno pero hay otros controles que pueden no cachearse caso de aquellos donde puedan cambiar de un momento para otro como por ejemplo el control de “encuestas pendientes de contestar”, donde el alulmno si le salta este control, inmediatamente va a contestar las encuestas pendientes y vuelve a la inscripcion para poder inscribirse a cursar/rendir examen.

Estos controles que se cachean es por si un alumno se inscribe a cursar 3 materias y por ejemplo en las 3 materias se le solicita el mismo control, en la primer vez se evaluara el control y se dejará el resultado en el cache de datos, en las proximas ejecuciones del control se evaluara si el mismo esta en el cache y si fue ejecutado con los mismos parametros y si es asi, toma el resultado de ahi y no lo vuelve a ejecutar en la base de datos. Esto hace que disminuyan las conexiones a la base de datos y los tiempos de respuesta durante una inscripcion y mas aun cuando hay inscripciones masivas en un período corto de tiempo, por ejemplo cuando hay cursadas con cupo.

Hola Juliana, te adjunto lo que me pediste.

Saludos.

Marcela


insc_cursadas.jpg

insc_cursadas.png

insc_examen.jpg

insc_examen.png

Hola Alejandro, no es común esta situación que se presentó con las comisiones y mesas de exámenes, pero nos llamó la atención y generó dudas al respecto.
Con lo que me explicas, queda más claro como se maneja el tema de la cache.
Muchas gracias por tu respuesta!
Saludos.
Marcela

Marcela, en el log que me mandaste no veo el registro de ‘lista_comisiones’ y ‘lista_mesas’
Me mandarías la captura del momento en que ingresás a la actividad o materia?
Gracias!

Juliana, te adjunto de nuevo los logs.
En realidad lo que no se actualiza es el listado de materias…


insc_cursadas_1.jpg

insc_cursadas_1.png

insc_examen_1.jpg

insc_examen_1.png

Marcela,
Como mencionamos anteriormente, para casos circunstanciales, se puede ejecutar el comando ‘limpiar caché’.

En el caso que deseen no guardar en caché la consulta a la lista de materias para inscripciones, una solución es personalizando la función lista_materias del modelo:
modelo/datos/db/inscripcion_cursada.php
modelo/datos/db/inscripcion_examen.php

En la definición de cada función del modelo se especifican, entre otras cosas, si los datos de la consulta se guardarán en caché o no. En el caso de ‘lista_materias’ deberían indicar que no se guarde en caché (cambiar su valor ‘memoria’ por ‘no’), por ejemplo:

	/**
	 * parametros: _ua, carrera, legajo, nro_inscripcion, plan, version, filtro_materias_con_mesa_exa
	 * cache: no
	 * filas: n
	 */
	function lista_materias($parametros) 
...

Al realizar esta personalización, el listado de materias para las inscripciones se irán a buscar siempre a la base de datos. Esto traerá aparejado una baja en el rendimiento de la operación. Es por este motivo, que la consulta se guarda en caché, tal como explicó Alejandro, para minimizar los accesos a la base de datos y tiempos de respuesta.

Si necesitan ayuda para personalizar, no duden en consultarnos.

Muchas Gracias Juliana! Como le decía a Alejandro fue algo que nos llamó la atención y como pronto estamos por migrar nos generó la duda si se trataba de algún error.
Ahora esta todo claro!
Saludos.
Marcela