本文介紹了Hazelcast-過期監聽程序延遲的處理方法,對大家解決問題具有一定的參考價值,需要的朋友們下面隨著小編來一起學習吧!
問題描述
問題是MAP偵聽器在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,
有誰有經驗解決這個問題嗎?
推薦答案
Hazelcast中的過期有兩種工作方式:
-
該條目在TTL/max-IDLE-秒持續時間之后無效。當您嘗試在TTL/max-IDLE-秒之后獲取條目時,您將獲得
null
值。后臺進程(稱為過期任務)工作并清理過期條目。此任務可以使用您提到的屬性進行優化。
過期后,如果添加了監聽器,則會觸發EntryEvent
。但是,這并不能保證您將收到與事件觸發時相同的確切時間。Hazelcast中的事件系統以異步方式工作,基于忘記即點火。該事件可能會在事件隊列中等待一段時間。因此,看到TTL值和事件觸發之間的時間差是正常的。
這篇關于Hazelcast-過期監聽程序延遲的文章就介紹到這了,希望我們推薦的答案對大家有所幫助,