Tho*_*mas 4 java caching guava
感谢这个论坛(如何使用Google Guava自动刷新缓存?),我了解了番石榴.
我想询问一些有关上述主题的信息(如何使用Google Guava自动刷新缓存?)但我不能写问题评论,因为我的声誉太低了.因此,我必须创建一个新主题.谢谢你的理解.
看到这段代码,
LoadingCache<K, V> cache = CacheBuilder.newBuilder()
.refreshAfterWrite(15, TimeUnit.MINUTES)
.maximumSize(100)
.build(new MyCacheLoader());
Run Code Online (Sandbox Code Playgroud)
如果一个条目A加载了她的值至少一次,那么上面的代码是否足以每15分钟自动重新加载与密钥A相关的值?
当然,正如Frank所说,"我重写了MyCacheLoader中的CacheBuilder.reload(K,V)方法,因此它以异步方式执行." 或者我有代码要添加?如果是的话,在哪里?非常感谢你
PS:JB,javadoc很完美,但我的英语水平很低.事实上,重写的CacheLoader重新加载是否必须为密钥执行真正的重新加载,如果是,则实现对该密钥的真正重新加载; 否则不要为该密钥重新加载缓存.而且,即使在第二种情况下(没有真正的重新加载),我是否每15分钟调用一次重写的重载方法?我想是的,但我是对的吗?谢谢
一个LoadingCache内置的
LoadingCache<K, V> cache = CacheBuilder.newBuilder()
.refreshAfterWrite(15, TimeUnit.MINUTES)
.maximumSize(100)
.build(new MyCacheLoader());
Run Code Online (Sandbox Code Playgroud)
会不会刷新本身自动条目每隔15分钟,作为缓存不创建线程做任何形式的管理(到期或清凉项)的.如果你打电话cache.get(someKey),然后再20分钟后调用它,它会再刷新条目呼叫的结果,所提供的输入没有被拆迁户因maximumSize被达到,当然.
我不太确定你在询问什么CacheLoader::reload和异步性.如果你覆盖它,你已经添加了代码,不是吗?希望它不仅仅是一个调用super.reload(k, v),因为它不会是异步的.如果需要,您可以提供更多详细信息.
但是,如前所述,对于任何当前密钥,该方法不会每15分钟自动调用一次,只有在再次请求条目时才会按需调用该方法.
| 归档时间: |
|
| 查看次数: |
3522 次 |
| 最近记录: |