我在项目中使用Ehcache并且有一个帮助类:
public static void reset(Ehcache cache, List<MyClass> list) {
List<Element> elementList = new ArrayList<Element>(list.size());
for (MyClass myClass : list) {
elementList.add(new Element(myClass.getId(), myClass));
}
// missing write lock
cache.removeAll();
// if findByKey(...) executed at this time, it's result will be null
cache.putAll(elementList);
}
public static MyClass findByKey(Ehcache cache, Serializable key) {...
public static List<MyClass> findAll(Ehcache cache) {...
public static MyClass findFirstByQuery(Ehcache cache, Criteria criteria) {...
public static List<MyClass> findByQuery(Ehcache cache, Criteria criteria) {...
public static void put(Ehcache cache, MyClass myClass) {...
我需要同步这些方法。我是否必须在所有方法中手动实现它,或者是否有其他(Ehcache特定的)方法来执行此操作?
答案 0 :(得分:0)
在Ehcache没有为此提供开箱即用的解决方案的意义上,你自己就在这里。
您还需要意识到,根据更新的频率和运行时间,这可能会导致瓶颈。 你不能找到一个不同的模式吗?