Esiste un modo più veloce per svuotare la cache del personalizzata utilizzando l'oggetto cacheGetSession?

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

Domanda

So che posso utilizzare le API della cache ColdFusion per cancellare i dati in quanto tali:

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

Ma in pratica recuperare tutti i ids (cioè cacheGetAllIds()) per eseguire l'eliminazione è lenta (per esempio secondi). Dove sto pensando che ci dovrebbe essere un modo se sto completamente ricominciare ad avere questo accada in millisecondi. Nel mio caso particolare, la cache del disco personalizzato è persistente e può essere 100s di megabyte sul disco.

Sono sospettare c'è un modo più veloce per cancellare questo utilizzando metodi su cacheGetSession(), forse in concomitanza con le API ColdFusion. Quindi, chiedendo di vedere se qualcuno ha una certa conoscenza di come fare questo, e make ColdFusion felice allo stesso tempo, prima di iniziare a guardare sotto il cofano stesso.

Aggiorna

sembra che potrebbe essere possibile utilizzare cacheGetSession (cacheName, true) .removeAll () perché l'oggetto restituito è di tipo net.sf.ehcache.Cache , che implementa net.sf.ehcache .Ehcache . E questa interfaccia specifica un metodo removeAll (). Non ho provato fuori ancora però.

È stato utile?

Soluzione

Questo fa:

cacheGetSession(cacheName, true).removeAll()

Con circa 10K + record è tornato in 60 ms.

FYI: cachGetSession () è una funzione di ColdFusion 9.0.1

Altri suggerimenti

Non ho testato questo, ma è questo più veloce? Solo nel caso ArrayToList() è il collo di bottiglia.

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

di riferimento: http://www.aaronwest.net/blog/index.cfm/2009/11/28/14-Days-of-ColdFusion-9-Caching-Day -12 - Rimozione-All-Items-a-cache

Se le prestazioni sono davvero un problema per voi, un bug report? http://cfbugs.adobe.com/cfbugreport/flexbugui/cfbugtracker/main.html

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top