如何使用 Hazelcast Imap 确定哪些键被锁定
How to determine which keys are locked lock with Hazelcast Imap
我正在使用 Hazelcast Imap 接口锁定分布式 way.Instead 中的项目,将项目放入地图我只是调用了似乎有效的锁定方法,但我不知道如何查询哪些项目被锁定目前,由于项目在 map.Is 中不可用,有没有办法查询 hazelcast 关于锁定键的信息?
这是示例代码:
public无效testMap_DistributedLock(){
最终配置 hazelcastConfig = new Config();
int numberOfRecords = 100;
final HazelcastInstance instance1 = Hazelcast.newHazelcastInstance(hazelcastConfig);
//monitorCluster(instance1);
IMap<Integer, Integer> myMap = instance1.getMap("myMap");
System.err.println("starting lock");
int index = 0;
while(index<numberOfRecords){
myMap.lock(index++);
}
System.err.println("After locking index is: " +index);
System.err.println("myMap.size()=" + myMap.size());
}
输出为:
starting lock
After locking index is: 100
myMap.size()=0
PS:使用 java7 和 Hazelcast 3.6
没有像IMap::getLocks那样的API,但是您可以使用IMap::isLocked遍历所有已知的锁并收集仍然被锁定的钥匙。如果您真的想要一些 getLocks 方法,请继续并在 github.
上提交功能请求
我正在使用 Hazelcast Imap 接口锁定分布式 way.Instead 中的项目,将项目放入地图我只是调用了似乎有效的锁定方法,但我不知道如何查询哪些项目被锁定目前,由于项目在 map.Is 中不可用,有没有办法查询 hazelcast 关于锁定键的信息? 这是示例代码: public无效testMap_DistributedLock(){ 最终配置 hazelcastConfig = new Config(); int numberOfRecords = 100;
final HazelcastInstance instance1 = Hazelcast.newHazelcastInstance(hazelcastConfig);
//monitorCluster(instance1);
IMap<Integer, Integer> myMap = instance1.getMap("myMap");
System.err.println("starting lock");
int index = 0;
while(index<numberOfRecords){
myMap.lock(index++);
}
System.err.println("After locking index is: " +index);
System.err.println("myMap.size()=" + myMap.size());
}
输出为:
starting lock
After locking index is: 100
myMap.size()=0
PS:使用 java7 和 Hazelcast 3.6
没有像IMap::getLocks那样的API,但是您可以使用IMap::isLocked遍历所有已知的锁并收集仍然被锁定的钥匙。如果您真的想要一些 getLocks 方法,请继续并在 github.
上提交功能请求