2014-09-22 33 views
1

,我有一個輔助類:復位的Ehcache在我在我的項目中使用的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

你是你自己在這裏的意義上的Ehcache不提供這一個徹頭徹尾的現成解決方案。

您還需要認識到的是,根據頻率和運行更新的時間,這可能會導致瓶頸。 你不能找到一個不同的模式嗎?

+0

看來我必須! :) 謝謝! – Krayo 2014-09-23 19:12:41