Grails缓存 - timeToLive无法正常工作

时间:2014-07-11 09:52:30

标签: caching grails groovy ehcache

我在Grails中使用缓存时遇到问题。缓存工作正常,因为第二次我请求一个对象时,它从缓存中获得服务。

但是,我无法让timeToLive工作。我已将其设置为15秒,并且我希望在超过15秒后调用它时执行expensiveGetMethod()的正文。

但是无论我在调用之间等待多长时间,对象总是从缓存中提供。

我在这里做错了什么? 为什么我的对象永远不会从缓存中逐出?

我的服务类,使用昂贵的方法:

class MyObjectService {

   @Cacheable(value='myCache')
   public expensiveGetMethod(String id) {
        println "+++++++++++++++++ This is an expensive method call for $id"
        new MyObject(id: id)
   }
}

我的域名对象:

class MyObject implements Serializable {
    private static final long serialVersionUID = 1
    String id
    String name
}

我的服务。 grails-app\conf\Config.groovy看起来像这样:

springcache {
    defaults {
        overflowToDisk = false
        memoryStoreEvictionPolicy = "LRU"
        eternal = false
        maxElementsInMemory = 10
    }
    caches {
        myCache {
            timeToLive = 15
            timeToIdle = 15
        }
    }
}

0 个答案:

没有答案