介绍
这是关于infinispan缓存,但我认为这是一个通用的问题.
在我的infinispan缓存中,我使用putIfAbsent方法将项目输入缓存,并使用remove方法删除它们.(jboss doc here)
基本行为
我可以将项目放入缓存中,并使用id从缓存中删除项目.但是,如果我没有明确删除缓存项,infinispan将在指定的生命周期传递后自动删除它.
在我的删除方法中,我删除之前运行一些自定义代码.但是当我没有调用remove方法时,由于提供的生命周期到期,infinispan会删除缓存条目.
在自动删除方案中,我无法运行自定义代码,因为它发生在引擎盖下.(通过infinispan).那可能的方法是什么?以下代码将更有希望地解释这一点.
我相信我很清楚.请给我一些见解.谢谢.
void putToCache(String id){
   myCache.putIfAbsent(id,value,LIFESPAN_DURATION,timeUnit);
}
void removeFromCache(String id){
  //MY CUSTOM CODE - WANT TO RUN THIS IN LIFE SPAN DURATION EXPIRY ALSO
   myCache.remove(id);
}