¿Hay una manera más rápida a Borrar la memoria caché personalizado mediante el objeto cacheGetSession?

StackOverflow https://stackoverflow.com/questions/4099464

Pregunta

Sé que puedo utilizar las API de caché de ColdFusion a datos claros tales como:

<cfset cacheName = "custom">
<cfset ids = cacheGetAllIds(cacheName)>
<cfset cacheRemove(arrayToList(ids), false, cacheName)>

Pero en la práctica la recuperación de todos los identificadores (es decir cacheGetAllIds()) para hacer la eliminación es lenta (por ejemplo, segundos). ¿Dónde estoy pensando que debe haber una manera si estoy totalmente empezar de nuevo que esto ocurra en milisegundos. En mi caso particular, la caché de disco personalizado es persistente y puede ser 100s de megabytes en el disco.

Estoy sospechando que hay una más rápida manera de aclarar esto a cabo utilizando métodos en cacheGetSession(), quizás en conjunción con las API de ColdFusion. Por lo que pide para ver si alguien tiene algún conocimiento de cómo hacer esto, y ColdFusion hacer feliz al mismo tiempo, antes de empezar a mirar debajo del capó mí mismo.

Actualizar

parece que podría ser posible usar cacheGetSession (cacheName, true) .removeAll () porque el objeto devuelto es de tipo net.sf.ehcache.Cache, que implementa net.sf.ehcache .Ehcache . Y esta interfaz especifica un método removeAll (). no lo han intentado salir con todo sin embargo.

¿Fue útil?

Solución

Esto lo hace:

cacheGetSession(cacheName, true).removeAll()

Con cerca de 10 K + registros se devuelve en 60 ms.

FYI: cachGetSession () es una función ColdFusion 9.0.1

Otros consejos

No he probado esto, pero esto es más rápido? Sólo en caso de ArrayToList() es el cuello de botella.

<cfloop index="cache" array="#cacheGetAllIds(cacheName)#">
    <cfset cacheRemove(cache, false, cacheName)>
</cfloop>

referencia: http://www.aaronwest.net/blog/index.cfm/2009/11/28/14-Days-of-ColdFusion-9-Caching-Day -12 - Extracción-All-Artículos-en-caché

Si el rendimiento es realmente un problema para usted, un informe de error? http://cfbugs.adobe.com/cfbugreport/flexbugui/cfbugtracker/main.html

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