java - 如何切换到 ehcache 3 的 TickingTimeSource?
问题描述
下面是ehcache的配置,
假设我们使用的是 ehcache 版本 3.7
<config xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance'
xmlns='http://www.ehcache.org/v3'
xmlns:jsr107='http://www.ehcache.org/v3/jsr107'
xsi:schemaLocation="http://www.ehcache.org/v3 http://www.ehcache.org/schema/ehcache-core-3.7.xsd
http://www.ehcache.org/v3/jsr107 http://www.ehcache.org/schema/ehcache-107-ext-3.7.xsd">
<service>
<jsr107:defaults enable-management="true" enable-statistics="true"/>
</service>
<cache alias="MyCache">
<expiry>
<ttl unit="seconds" >172800</ttl>
</expiry>
<heap unit="entries">1000</heap>
</cache>
</config>
- 问题是:如何切换到 TickingTimeSource,如 ehcache 文档中所述
到目前为止完成的作业:-
- 试图在 ehcache xsd 文件中搜索 TickingTimeSource 的配置标签 --> 到目前为止没有任何线索。
- 在 ehcache 3 代码库中搜索 TickingTimeSource 切换以获取 github 中的示例代码 --> 到目前为止没有任何线索。
- 只是试图在新的 ehcache 3 上使用配置来压缩性能。发现 ehcache 3 不支持 LRU 驱逐策略。有 AgainstEvictionAdvisor (防止驱逐的逻辑,我猜这对性能没有帮助)
- 在 ehcache 谷歌组中检查了类似查询的答案 -> 到目前为止没有答案
- 检查来自 github 的示例 ehcache 配置 gists 文件 -> 目前未找到 TickingTimeSource 的相关配置。
- 是否在使用 ehcache 的地方进行了 java 代码调试并检查内部变量/对象并搜索设置 TimeSource - 这可能会提供注入 TickingTimeSource 的线索。发现 TimeSource 需要在内部 Store 对象( JSR107Store 或 ehcacheStore )中设置,但它没有提供直接设置时间源的api。
解决方案
我发现只有一种方法可以通过基于 Java 的配置来实现这一点。我没有时间对此进行测试,但这段代码与我在 ehcache 测试中发现的类似:
CacheManager cacheManager =
CacheManagerBuilder.newCacheManagerBuilder()
.using(new TimeSourceConfiguration(new TickingTimeSource(1L, 1000L)))
.withCache("cache1",
CacheConfigurationBuilder.newCacheConfigurationBuilder(String.class, Object.class, ResourcePoolsBuilder.heap(10))).build(true)
推荐阅读
- maven - 如何部署链接的 Maven 项目
- c - 尝试运行代码时出错
- java - 如何用多个值填充对象的数组属性
- powershell - Powershell - 你能根据公司删除项目吗
- visual-studio - NuGet 包浏览:如何查看按下载次数排序的包(降序)
- spring-boot - Spring Boot 2.0.x - @Configuration 类 @Autowired entityManagerFactory NullPointerException
- sql-server - SQL Server 标量 UDF
- javascript - “成功 callbackId 错误:FirebasePlugin223329663:TypeError:无法读取属性 'navCtrl' of null”
- c - 如何在 C 函数中返回“realloc”数组
- reactjs - React + React Native 在同一个项目中