我正在尝试使用Hazelcast Map并发现Expiration time for an entry = Last Updated Time + TTL
。
但我希望将其作为Expiration Time for an entry = Creation Time + TTL
。有人可以建议如何实现这个功能??
以前存在此行为,是否有任何原因发生了变化?
答案 0 :(得分:0)
自版本3.3.3以来,行为确实发生了变化。显然,社区以前的行为是considered a bug。
的可能性:
ttl
。 答案 1 :(得分:0)
它是旧线程,但也许此解决方案可以帮助某人。我在hazelcast 3.7.x中遇到了相同的情况。这是我所做的
我正在使用IMap,它提供了使用ttl设置条目的方法
设置(K键,V值,长ttl,TimeUnit ttlUnit)
使用此方法,您可以使用此ttl进行输入,这将相应地更新到期时间。
现在的窍门是调整ttl,以使到期时间不会更改(或在条目更新时ttl也不会更新)。我做到了
ttl = myImap.getEntryView(key).getExpirationTime()-新的java.util.Date()。getTime(); myImap.set(key,value,ttl,TimeUnit.MILLISECONDS);
它通过hazelcast 3.7.5进行了尝试和测试。但是,由于对ttl的这种调整,我可能会导致到期日期相差几毫秒。