我在缓存中设置了 timeToIdle 和 timeToLive 属性。它们分别设置为 10 分钟和 1 小时。
每 5 分钟,我有一个 cron 作业调用getKeysWithExpiryCheck()
对缓存中的元素进行一些处理。我还注册了一个缓存侦听器,以在元素过期或被驱逐时执行一个进程。
我发现只有在缓存变满时才会从缓存中删除元素——尽管调用getKeysWithExpiryCheck
. 因为我使用的是 Terrocota 大内存缓存 (4.0.4),所以这总是会锁定我的系统,因为缓存会过期(并执行一个处理)数百万个应该在 TTL 或 TTI 的 5 分钟内处理的条目。
有没有人有什么建议?