对每个节点的缓存数据进行操作

时间:2016-08-15 19:49:09

标签: ignite

我可以用apache点燃来进行亲和力计算机数据搭配。在以下两个示例中,它按预期工作。

console.log(strg.match('e','s'));

但是,我想针对所有节点数据运行lambda。例如,假设我已经为每个人缓存了所有来自亚马逊的订单。我想知道每个人订单的总金额是多少。

我可能只是错过了一个例子,但根据文档我不知道如何做到这一点。在我看到的例子中,我必须指定我想要计算的键。在这个例子中,我只想在所有节点上做一些lambda,每个节点只在它自己的数据共享上运行。

我试过这个

    // Works on all nodes
    IgniteUtil.getIgnite().compute().broadcast(() -> {
        System.out.println("Should happen on all nodes");
        cache.get(key).forEach(x -> {
            System.out.println(x);
        });
    });

    // Works on just the one node
    IgniteUtil.getIgnite().compute().affinityRun(IgniteUtil.CACHE_NAME, key , () -> {
        System.out.println("Should only happen on one node");
        cache.get(key).forEach(x -> System.out.println(x));
    });

并且它只在具有密钥的节点上执行,但是,缓存大小是完整缓存大小,而不仅仅是本地值。

有什么建议吗?

0 个答案:

没有答案