问题是TTL过期后,地图监听器会提高3-5秒。
在这里我将新条目添加到地图
05-11-2018 14:38:57.197 INFO [hz._hzInstance_1_3cc39d15-29b8-4f59-8bca-e47eae0476a1.event-26] MyEntryExpiredListener - :::::::::::entry was ADDED to the map :::::::::::::::::::
TTL配置为10秒,但在约14秒后返回。
05-11-2018 14:39:11.326 INFO [hz._hzInstance_1_3cc39d15-29b8-4f59-8bca-e47eae0476a1.event-26] MyEntryExpiredListener - :::::::::::entry was EXPIRED in the map :::::::::::::::::::
我尝试设置配置属性:
hazelcast.internal.map.expiration.cleanup.percentage=100,
hazelcast.internal.map.expiration.task.period.seconds=1,
任何人都有经验并可以解决此问题吗?
答案 0 :(得分:0)
Hazelcast的有效期有两种方式:
null
值。到期后,如果添加了任何侦听器,则会触发EntryEvent
。但是,这不能保证您会在触发事件的确切时间收到该事件。 Hazelcast中的事件系统是异步工作的,并且基于“随遇而安”。该事件可能会在事件队列中等待一段时间。因此,通常会看到TTL值与事件触发之间的时间差。