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))
        };