【问题标题】:Apache Ignite RemoteListen .NetApache Ignite RemoteListen .Net
【发布时间】:2020-08-13 05:55:04
【问题描述】:

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

【问题讨论】:

  • 请澄清 - 你打算做什么? Then I want to by subscribing to the remote Server is event date - 这是什么意思?
  • 想通过订阅远程服务器事件知道缓存数据什么时候过期,数据过期时添加自己的逻辑。
  • 我想通过订阅服务器端事件(EVT_CACHE_OBJECT_EXPIRED)来了解缓存数据何时过期,但现在.NET API 有LocalListen,而不是RemoteListen。

标签: .net ignite


【解决方案1】:

您可以在服务器节点上使用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;
    }
}

【讨论】:

  • 你好,我试过你发的代码,但是缓存过期了,还是没有消息通知。现在我不知道问题出在哪里。
  • codeCacheConfiguration configuration = new CacheConfiguration(CacheName, query); var cache = ignite.GetOrCreateCache&lt;string, Person&gt;(configuration).WithExpiryPolicy(expiryPolicy); var remotes = ignite.GetCluster().ForRemotes(); remotes.GetEvents().LocalListen(new EventListener(remotes.GetMessaging()), EventType.CacheObjectExpired); var local = ignite.GetCluster().ForLocal().GetMessaging(); local.LocalListen(new MessageListener(), "Expired");
  • @coder-yp 这里是一个工作要点:gist.github.com/ptupitsyn/42e6e6c3b20147d04f0f1bda9e1e1464 为简单起见,它在一个进程中同时启动客户端和服务器,您可以随意拆分它们。
  • 抱歉,链接打不开
  • 该链接是公开的并且可以使用。可以访问 github.com 吗?
猜你喜欢
  • 1970-01-01
  • 2019-03-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多