2017-09-05 46 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