quiero utilizar ehcache no solo como un caché sino como un contenedor de objetos sucios que quiero vaciar en mi base de datos cuando los objetos son desalojados/caducados. durante el procesamiento normal, uso una clave para buscar en ehcache. si la clave no está presente, leo los datos de la base de datos y los pongo en ehcache. el valor es en realidad un objeto complejo que modifico. cuando se produce la condición ttl/tiempo de inactividad/desbordamiento, veo que se invocan las devoluciones de llamada de CacheEventListener. pero hay un gran problema se llama al notifyElementExpired después de que el valor-clave se elimina de la memoria caché. entonces hay una condición de carrera. si hago la tarea de enjuagar el valor sucio en caché en notifyElementExpired y, al mismo tiempo, en otro hilo, leo para que ocurra la misma clave, entonces hay un problema de sincronización. el segundo hilo no encontrará el objeto en ehcache, y por lo tanto irá a la base de datos mientras que el otro hilo aún se está preparando para enjuagar.¿este caso de uso puede ser resuelto en ehcache?
intenté experimentar con ehcache de escritura y no creo que eso también funcione.
¿hay alguna solución aquí?
Realmente apreciaría buenas soluciones a este problema, incluso si se trata de algún otro mecanismo de caché que no sea ehcache.
gracias
No pude encontrar ninguna respuesta a esta pregunta yo mismo. ¡Así que fui adelante y lo resolví yo mismo! Esta es la solución sobre la que blogéé - http://blog.readypulse.com/2012/01/08/ehcache-as-a-true-persistent-store-backed-cache/ –
Buen trabajo TVinodGupta. Como recordatorio amistoso, ¿puede por favor enviar una respuesta a la pregunta usted mismo y luego aceptar esa respuesta para que podamos cerrar esta pregunta? Además, debe aceptar respuestas a preguntas anteriores si resuelven su problema. – Zecas