【问题标题】:HazelCast .NET - Clear Maps dynamicallyHazelCast .NET - 动态清除地图
【发布时间】:2019-09-09 22:27:17
【问题描述】:

我正在创建几个地图来为我的应用程序缓存一些信息。 当触发某些事件时,我想清除这些缓存。 我有一个我应该清除的所有地图名称的列表,但我找不到动态获取这些地图以清除它们的方法。基本上我有:

var mapsNames = ["map-1", "map-2", "map-3"];

我想要一种简单的方法,例如:

var client = HazelcastClient.NewHazelcastClient();
foreach (var name in mapsNames)
{
    var map = client.GetMap(name);
    map.Clear();
}

在README.md 中,我们确实有一些示例,例如:

var client = HazelcastClient.NewHazelcastClient();

var personnelMap = client.GetMap("personnelMap");
personnelMap.Put("Alice", "IT");
personnelMap.Put("Bob", "IT");
personnelMap.Put("Clark", "IT");
Console.WriteLine("Added IT personnel. Logging all known personnel");
foreach(var entry in personnelMap.entrySet())
{
    Console.WriteLine("{0} is in {1} department", entry.Key, entry.Value );
}
client.Shutdown();

这表明我们应该有一个非泛型方法GetMap,但我找不到它。唯一可用的是GetMap<TKey, TValue>。文档错了吗?有没有办法在不使用丑陋反射的情况下按名称获取地图?

提前致谢,

【问题讨论】:

    标签: c# .net-core hazelcast hazelcast-imap


    【解决方案1】:

    您尝试过 (ICollection<IDistributedObject> GetDistributedObjects()) https://github.com/hazelcast/hazelcast-csharp-client/blob/v3.12.1/Hazelcast.Net/Hazelcast.Client/HazelcastClient.cs#L230 吗?

    您可以遍历所有现有的地图,您可以使用https://github.com/hazelcast/hazelcast-csharp-client/blob/v3.12.1/Hazelcast.Net/Hazelcast.Core/IDistributedObject.cs#L53 来检查分布式对象是否属于地图服务类型。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-04-21
      • 1970-01-01
      • 2019-01-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多