java - Apache Ignite - 连续查询

标签 java sql ignite

“setInitialQuery”的用途是什么?

IgniteCache<Integer, String> cache = ignite.cache("mycache");

// Create new continuous query.
ContinuousQuery<Integer, String> qry = new ContinuousQuery<>();

// Optional initial query to select all keys greater than 10.
qry.setInitialQuery(new ScanQuery<Integer, String>((k, v) -> k > 10)):

// Callback that is called locally when update notifications are received.
qry.setLocalListener((evts) -> 
    evts.forEach(e -> System.out.println("key=" + e.getKey() + ", val=" + e.getValue())));

// This filter will be evaluated remotely on all nodes.
// Entry that pass this filter will be sent to the caller.
qry.setRemoteFilter(e -> e.getKey() > 10);

// Execute query.
try (QueryCursor<Cache.Entry<Integer, String>> cur = cache.query(qry)) {
    // Iterate through existing data stored in cache.
    for (Cache.Entry<Integer, String> e : cur)
        System.out.println("key=" + e.getKey() + ", val=" + e.getValue());

    // Add a few more keys and watch a few more query notifications.
    for (int i = 5; i < 15; i++)
        cache.put(i, Integer.toString(i));
}

上面的代码无需设置初始查询即可工作。 尝试了解何时使用“setInitialQuery”。

最佳答案

初始查询允许在开始监听更新之前将光标置于缓存中已有的数据上。这确实是可选的。

关于java - Apache Ignite - 连续查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46740212/

相关文章:

java - spring抽象="true"是什么意思?

java - 将结果集存储到数组中

ignite - 像 count、max、min 这样的简单聚合非常慢

java - 在 Java 中重载

java - 每当我尝试创建递归方法时,我总是遇到相同的错误

php - 我无法从数据库中获取任何数据输出,我只得到 "0 results"作为 else 语句,这是怎么回事?

mysql - 提高 SQL 效率

sql - Select count(*)是否不返回SQLite中结果为0的行?

java - Ignite 和 MySQL - 更新条目数量意外

java - 在客户端-服务器模式下使用 Apache Ignite