私はColdFusionキャッシュAPIを使用してデータを次のようにクリアできることを知っています。
<cfset cacheName = "custom">
<cfset ids = cacheGetAllIds(cacheName)>
<cfset cacheRemove(arrayToList(ids), false, cacheName)>
しかし実際cacheGetAllIds()
には、削除を行うためにすべてのID(つまり)を取得するのは遅い(たとえば秒)。ミリ秒単位でこれを完全にやり直す方法があるはずだと私は考えています。私の特定のケースでは、カスタムキャッシュはディスク永続的であり、ディスク上で数百メガバイトになる可能性があります。
cacheGetSession()
おそらくColdFusionAPIと組み合わせて、のメソッドを使用してこれをクリアするより速い方法があるのではないかと思います。ですから、私が内部を調べ始める前に、誰かがこれを行う方法についてある程度の知識を持っているかどうかを確認し、同時にColdFusionを幸せにするように依頼します。
アップデート
返されるオブジェクトはnet.sf.ehcache.Ehcacheを実装するnet.sf.ehcache.Cacheタイプであるため、 cacheGetSession(cacheName、true).removeAll()を使用できる可能性があるようです。そして、このインターフェースはメソッドremoveAll()を指定します。まだ試していません。