如何使用 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.

上提交功能请求