Multithreading 如何忽略最大空闲秒数,但将ttl保持在Hazelcast JCache中?

Multithreading 如何忽略最大空闲秒数,但将ttl保持在Hazelcast JCache中?,multithreading,hazelcast,jcache,Multithreading,Hazelcast,Jcache,我正在尝试使用Hazelcast 3.7.x(本文撰写时的最新版本)JCache提供程序和声明性配置(用于线程等的好处)。我只需要为我的用例设置生存时间秒,而不是最大空闲秒。只有在没有更新的情况下,我才需要将该项保留在缓存中(在缓存中条目的生命周期中发生读取)。如果我不设置最大空闲秒数,它将默认为0,并将永久保留缓存中的条目。如果我将它设置为比TTL小一些的值,它可能会超过预期的时间,因为可能会发生读取。在hazelcast.xml文档中,我看不到如何做到这一点。我可以使用具有不同到期策略的编程

我正在尝试使用Hazelcast 3.7.x(本文撰写时的最新版本)JCache提供程序和声明性配置(用于线程等的好处)。我只需要为我的用例设置生存时间秒,而不是最大空闲秒。只有在没有更新的情况下,我才需要将该项保留在缓存中(在缓存中条目的生命周期中发生读取)。如果我不设置最大空闲秒数,它将默认为0,并将永久保留缓存中的条目。如果我将它设置为比TTL小一些的值,它可能会超过预期的时间,因为可能会发生读取。在hazelcast.xml文档中,我看不到如何做到这一点。我可以使用具有不同到期策略的编程接口,但会出现Hazelcast文档中记录的初始化问题。此外,如果他们能为JCache提供程序做这件事,我怀疑有一种方法可以在XML中完成,而不仅仅是文档化

如果这是不可能的,并且您有一个JCache代码,可以与编程配置一起工作,并注意线程问题,请发布。如果只是单线程创建调用的问题,我可以自己做

谢谢
S

最大空闲秒数和生存时间秒数都不适用于Hazelcast xml配置中的Jcache配置。缓存元素只能有“到期策略工厂”,它只能有一个子元素“定时到期策略”,并且具有修改、触摸等选项。配置如下:

<cache name="somecache">
        <key-type class-name="java.lang.String"/>
        <value-type class-name="java.lang.String"/>
        <statistics-enabled>true</statistics-enabled>
        <management-enabled>true</management-enabled>   
        <read-through>false</read-through>
        <write-through>false</write-through>
        <in-memory-format>OBJECT</in-memory-format>
        <expiry-policy-factory>
          <timed-expiry-policy-factory expiry-policy-type="MODIFIED" duration-amount="5" time-unit="SECONDS"/>
                </expiry-policy-factory>
        <backup-count>1</backup-count>
    </cache>

真的
真的
假的
假的
对象
1.