Gibt es einen schnelleren Weg einen benutzerdefinierten Cache Mit dem cacheGetSession Objekt zu löschen?

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

Frage

Ich weiß, ich Coldfusion Cache-APIs klare Daten als solche verwendet werden kann:

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

Aber in der Praxis des Abrufen aller IDs (das heißt cacheGetAllIds()), das Löschen zu tun ist langsam (z Sekunden). Wo ich denke, es sollte ein Weg sein, wenn ich völlig fange über dies in Millisekunden passieren zu haben. In meinem speziellen Fall ist die benutzerdefinierte Cache Disk persistent und 100s von Megabyte auf der Festplatte sein.

Ich bin Verdacht gibt es einen schnelleren Weg, dies auf cacheGetSession() Verwendung von Methoden zu löschen, möglicherweise in Verbindung mit Coldfusion-APIs. Also fragen Sie, ob jemand einige Kenntnisse hat, wie dies zu tun, und make Coldfusion glücklich zur gleichen Zeit, bevor ich unter der Haube selbst beginnen suchen.

Aktualisieren

Sieht aus wie könnte es möglich sein, cacheGetSession (cachename, true) .removeAll (), weil das Objekt vom Typ zurückgegeben net.sf.ehcache.Cache , welche Geräte net.sf.ehcache .Ehcache . Und diese Schnittstelle legt ein Verfahren removeAll (). Habe es nicht ausprobiert noch though.

War es hilfreich?

Lösung

Das tut es:

cacheGetSession(cacheName, true).removeAll()

Mit etwa 10 K + Datensätze zurückgegeben es in 60 ms.

Zur Info: cachGetSession () ist eine Coldfusion 9.0.1 Funktion

Andere Tipps

Ich habe nicht getestet, aber das ist schneller überhaupt? Nur für den Fall ArrayToList() ist der Engpass.

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

Hinweis: http://www.aaronwest.net/blog/index.cfm/2009/11/28/14-Days-of-ColdFusion-9-Caching-Day -12 - Entfernen-All-Artikel-in-Cache

Wenn die Leistung für Sie wirklich ein Problem ist, einen Fehlerbericht? http://cfbugs.adobe.com/cfbugreport/flexbugui/cfbugtracker/main.html

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top