2017-09-05 48 views
0

我们想要在IMap客户端上的连续查询缓存中缓存一些条目(即取决于谓词)。但是我们想要在延迟一段时间(即30秒)之后才发送更新到CQC,即使这些条目每秒收到100次更新。这可以通过将延迟秒数设置为30秒&合并为真。Hazelcast连续查询缓存 - 批量大小容量和合并

QueryCacheConfig cqc = new QueryCacheConfig(); 
cqc.setDelaySeconds(30); 
cqc.setCoalesce(true); 
cqc.setBatchSize(30) 

CQC完全适合井用于上述使用情况。

但我们注意到CQC在延迟秒后没有收到更新,直到批量容量未达到。这是预期的行为吗? 我们认为CQC会在延迟秒数或批量达到其容量后收到条目的最新更新值。

+0

您还可以共享一个复制器吗?从我的试验来看,它似乎有效。 – mrck

+0

@mrck - 外观错误已被报告https://github.com/hazelcast/hazelcast/issues/11331 – Hiten

+0

是的报道,但重现器似乎没有用,因为它显示最终预期的行为发生。如果你有另一个复制器,看到它会很高兴。 – mrck

回答

0

delaySeconds和batchSize'OR'关系。当batchSize达到或delaySeconds通过时,更新被推送到缓存。如果合并成立,则只有最新的密钥更新被推送到缓存。

我们在使用intellij进行测试时发现了一些问题。如果您使用intellij,请尝试使用另一个IDE