Apache Ignite .Net GetDataStreamer WithExpiryPolicy
Apache Ignite .Net GetDataStreamer WithExpiryPolicy
var cache = client.GetOrCreateCache<int, int>("test").WithExpiryPolicy(new ExpiryPolicy(TimeSpan.FromSeconds(5), null, null));
using (var ldr = client.GetDataStreamer<int, int>("test"))
{
for (int i = 0; i < 20; i++)
ldr.AddData(i, i);
ldr.Flush();
}
我设置了WithExpiryPolicy,但是GetDataStreamer添加的数据没有过期。请告诉我如何设置数据过期。
WithExpiryPolicy
不修改底层缓存本身。相反,它 returns 一个具有指定策略的新实例。这允许您根据某些业务逻辑在同一缓存上配置不同的策略。
同时,DataStreamer 正在查找创建时的缓存,并不关心 WithExpiryPolicy
。我建议您显式配置缓存,re-run 您的示例使用以下配置:
var cacheConfiguration = new CacheConfiguration
{
Name = name,
ExpiryPolicyFactory = new ExpiryPolicyFactory(
new ExpiryPolicy(TimeSpan.FromSeconds(1), null, null))
};
var cache = client.GetOrCreateCache<int, int>("test").WithExpiryPolicy(new ExpiryPolicy(TimeSpan.FromSeconds(5), null, null));
using (var ldr = client.GetDataStreamer<int, int>("test"))
{
for (int i = 0; i < 20; i++)
ldr.AddData(i, i);
ldr.Flush();
}
我设置了WithExpiryPolicy,但是GetDataStreamer添加的数据没有过期。请告诉我如何设置数据过期。
WithExpiryPolicy
不修改底层缓存本身。相反,它 returns 一个具有指定策略的新实例。这允许您根据某些业务逻辑在同一缓存上配置不同的策略。
同时,DataStreamer 正在查找创建时的缓存,并不关心 WithExpiryPolicy
。我建议您显式配置缓存,re-run 您的示例使用以下配置:
var cacheConfiguration = new CacheConfiguration
{
Name = name,
ExpiryPolicyFactory = new ExpiryPolicyFactory(
new ExpiryPolicy(TimeSpan.FromSeconds(1), null, null))
};