我正在尝试使用Hazelcast 3.7.x(撰写本文时最新)JCache提供程序和声明性配置(用于线程等的好处)。我需要为我的用例设置生存时间秒而不是最大空闲秒数。我只需要在没有更新的情况下将项目保留在缓存中(在缓存中的条目生命期间发生读取)。如果我没有设置max-idle-seconds,它默认为0并且会永久保留缓存中的条目。如果我将它设置为小于TTL的某个值,它可能会超出预期的时间,因为可能会发生读取。我在hazelcast.xml文档中看不到如何做到这一点。我可以使用具有不同到期策略的编程接口,但这会产生初始化问题,如Hazelcast文档中所述。此外,如果他们能够为JCache提供商做到这一点,我怀疑在XML中有一种方法可以做到,而不仅仅是记录在案。
如果那是不可能的,并且您有一个JCache代码,该代码适用于编程配置,并且需要注意线程问题,请发布。如果它只是单线程创建调用的问题,我可以自己做。
由于 S
答案 0 :(得分:1)
max-idle-seconds和time-to-live-seconds都不适用于Hazelcast xml配置中的Jcache配置。缓存元素只能有“expiry-policy-factory”,它只能有一个子元素'timed-expiry-policy',并且有一个修改,触摸等选项。配置如下:
Textbox1