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不会修改基础缓存本身。而是返回具有指定策略的新实例。这使您可以根据某些业务逻辑在同一缓存上配置不同的策略。

同时,DataStreamer会在创建缓存时寻找它,而不关心WithExpiryPolicy。我建议您显式配置缓存,并使用以下配置重新运行示例:

        var cacheConfiguration = new CacheConfiguration
        {
            Name = name,ExpiryPolicyFactory = new ExpiryPolicyFactory(
                new ExpiryPolicy(TimeSpan.FromSeconds(1),null,null))
        };