Apache Ignite RemoteListen .Net

Apache Ignite RemoteListen .Net

我通过BAT文件启动了一个Server,然后通过代码启动了一个Client写入数据,并设置了过期时间。然后我想通过订阅 EVT_CACHE_OBJECT_EXPIRED 来跟踪客户端的过期条目,但我看到 https://issues.apache.org/jira/browse/IGNITE-1682 - RemoteListen 已从 Ignite.NET 中删除,替代计划是什么?或者有什么例子可以看一下吗

您可以在服务器节点上使用 LocalListen,然后使用 Ignite Messaging 将事件通知客户端。

服务器

server.GetEvents().LocalListen(new EventListener(server.GetMessaging()), EventType.CacheObjectExpired);

...

public class EventListener  : IEventListener<CacheEvent>
{
    private readonly IMessaging _messaging;

    public EventListener(IMessaging messaging)
    {
        _messaging = messaging;
    }

    public bool Invoke(CacheEvent evt)
    {
        _messaging.Send(evt.Key, "Expired");

        return true;
    }
}

客户端

client.GetMessaging().LocalListen(new MessageListener(), "Expired");

...

public class MessageListener : IMessageListener<object>
{
    public bool Invoke(Guid nodeId, object message)
    {
        Console.WriteLine("Expired: " + message);

        return true;
    }
}