Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/382.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 检索Ehcache中的过期对象_Java_Configuration_Caching_Ehcache - Fatal编程技术网

Java 检索Ehcache中的过期对象

Java 检索Ehcache中的过期对象,java,configuration,caching,ehcache,Java,Configuration,Caching,Ehcache,我想在Ehcache上面实现以下算法: 尝试从缓存中获取元素 如果元素未过期 为价值服务 否则 服务过期价值 刷新背景中的元素 但我从未得到过期的元素(element.isExpired())。我试图使用我的缓存配置(特别是TimeToLive和TimeToIdle),但我似乎无法让它按我所希望的方式工作。我可以列出缓存中的键,但是如果我“get()”一个过期的元素,我总是会得到null 我做错了什么?你没有做错什么。文档说明获取过期元素将从缓存中删除它并返回null 我怀疑元素出现

我想在Ehcache上面实现以下算法:

  • 尝试从缓存中获取元素
  • 如果元素未过期
    • 为价值服务
  • 否则
    • 服务过期价值
    • 刷新背景中的元素
但我从未得到过期的元素(element.isExpired())。我试图使用我的缓存配置(特别是TimeToLive和TimeToIdle),但我似乎无法让它按我所希望的方式工作。我可以列出缓存中的键,但是如果我“get()”一个过期的元素,我总是会得到null


我做错了什么?

你没有做错什么。文档说明获取过期元素将从缓存中删除它并返回null


我怀疑元素出现过期的唯一时间是您有一个事件监听器侦听元素过期事件,但我不能说我曾经测试过这个问题。

只是好奇,您有没有想出解决方案或替代方法?请注意事件监听器(NotifyElementExpiration)。只有元素的键是已知的。根据API中的以下句子:由于元素已过期,只有元素的键是已知的。只是有点麻烦。