6
我們使用Hazelcast 2.3.1,我們hazelcast.xml配置文件,我們 使用的Hazelcast IMAP寫的背後:Hazelcast地圖被鎖定
<map name="HazelcastObjectOperations.objectMap">
<backup-count>1</backup-count>
<map-store enabled="true">
<class-name>persister.HazelcastObjectPersister</class-name>
<write-delay-seconds>10</write-delay-seconds>
</map-store>
</map>
<properties>
<property name="hazelcast.map.cleanup.delay.seconds">5</property>
</properties>
我們得到了兩個班
HazelcastObjectOperation
其中包含地圖,並且 用於將對象放入其中。HazelcastObjectPersister
使用擴展MapStore 來持久存在當Hazelcast調用storeAll()
時的對象。
public class HazelcastObjectOperation
{
protected final IMap<Long, MyHzcObj> objectMap;
private final HazelcastInstance instance;
public HazelcastObjectOperation()
{
this.instance = Hazelcast.getDefaultInstance();
this.objectMap = this.instance.getMap(
"HazelcastObjectOperations.objectMap");
}
public void save(final MyHzcObj object)
{
long start = System.currentTimeMillis();
IdGenerator generator = Hazelcast.getIdGenerator("generator");
this.objectMap.put(generator.newId(), object);
long end = System.currentTimeMillis();
}
}
問題是當Hazelcast貫穿本地圖並且取出 對象應被存儲在持留 類的storeAll方法,在地圖上被鎖定爲秒,所以投入到這個地圖這一次持續 。有沒有解決這個問題的方法?