我正在尝试使用 Hazelcast Map 并发现Expiration time for an entry = Last Updated Time + TTL
。
但我想把它作为
Expiration Time for an entry = Creation Time + TTL
. 有人可以建议如何实现此功能吗?这种行为以前存在,为什么它被改变了?
我正在尝试使用 Hazelcast Map 并发现Expiration time for an entry = Last Updated Time + TTL
。
但我想把它作为Expiration Time for an entry = Creation Time + TTL
. 有人可以建议如何实现此功能吗?
这种行为以前存在,为什么它被改变了?
它是一个旧线程,但也许这个解决方案可以帮助某人。我在使用 hazelcast 3.7.x 时遇到了同样的情况。这是我所做的
我正在使用 IMap,它提供了使用 ttl 设置条目的方法
set(K key, V value, long ttl, TimeUnit ttlUnit)
使用此方法,您可以使用此 ttl 进行输入,这将相应地更新到期时间。
现在的诀窍是调整 ttl 以使过期时间不会改变(或者当条目更新时 ttl 不会得到更新)。我做了
ttl=myImap.getEntryView(key).getExpirationTime()-new java.util.Date().getTime(); myImap.set(key,value,ttl,TimeUnit.MILLISECONDS);
它使用 hazelcast 3.7.5 进行了试验和测试。但是,由于对 ttl 的这种调整,它可能会导致到期日期出现几毫秒的差异。
自 3.3.3 版以来,这种行为确实发生了变化。显然,以前的行为被社区认为是一个错误。
可能性:
ttl
在创建时间后过期。