首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >EhCache缓存和CacheWriter刷新

EhCache缓存和CacheWriter刷新
EN

Stack Overflow用户
提问于 2012-10-12 09:52:53
回答 2查看 891关注 0票数 1

我正在尝试Ehcache的写后功能,以实现对数据库的高并发写入的合并。现在,我已经完成了所有工作(我写入缓存,然后在配置的策略下),缓存正在调用我的CacheWriter实现进行后端写操作。但是,我需要在某个时间点(例如,当应用程序将要关闭时,或者在集成测试中)将所有挂起的缓存值“刷新”到CacheWriter。换句话说,我想调用Ehcache将所有脏值“提交”到CacheWriter。

对于如何实现这一点有什么想法吗?

提前感谢

EN

回答 2

Stack Overflow用户

发布于 2012-10-12 19:03:48

也许你可以使用它的关闭监听器:http://ehcache.org/documentation/operations/shutdown

票数 0
EN

Stack Overflow用户

发布于 2016-03-01 18:08:01

面对同样的问题,我求助于轮询和等待:

代码语言:javascript
复制
WriteBehindManager writerManager = (WriteBehindManager) cache.getWriterManager();
Stopwatch createStarted = Stopwatch.createStarted();
while (writerManager.getQueueSize() > 0 && createStarted.elapsed(TimeUnit.SECONDS) < 30) {
    Thread.yield();
}

其中,秒表是来自Guava库的timer对象。我已经浏览了源代码,但是在EHCache 2.9版本中,在代码中没有发现有意刷新WriteBehindQueue。此解决方案假设写入缓存的任何代码也将被关闭,并且maxWriteDelay +上一次写入操作的延迟加起来不超过30秒。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12851165

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档