hazelcast で基数サービスを取得する際に問題があります。次のコードでは、カーディナリティ エスティメータに訪問者を追加します。messageIDは一意です。このコードにより、5K のユニークな項目で満たされたテスト環境で。
public void AppendVisitor(String messageID, String visitor) {
CardinalityEstimator cs = this.hazelcast.getCardinalityEstimator(messageID);
cs.add(visitor);
this.viewsList.putIfAbsent(messageID, Long.valueOf(System.currentTimeMillis() / 1000L));
}
別のクラスのviewsListの有効期限で、リスナー コードを記述します。前のコードでは、エントリ イベント キーは messageID でした。しかし、この関数を呼び出すと、訪問は0です。空の別のオブジェクトを取得しているようです。
@Override
public void entryEvicted(EntryEvent<String, Long> entryEvent) {
long visit = hazelcast.getCardinalityEstimator(messageID).estimate();
}