0

私は hazelcast (v2.1.3) を使用しています - マップのストアロードでは、「store all」ではなく「store」が呼び出され続けます (write delay seconds フラグが 0 より大きい場合でも):

<map-store enabled="true">
<class-name>test.test.abcMap</class-name>
<write-delay-seconds>5</write-delay-seconds> 
</map-store>

これをトラブルシューティングするのに役立つ有用な提案は大歓迎です。別のプロジェクトで非同期書き込みビハインドを行っていましたが、現在それらを機能させることができないようです。ありがとう

編集 write-delay-seconds で指定された遅延の後、store 実装が呼び出されます (store all とは対照的に)。

4

1 に答える 1

2

保存する必要のあるエントリが複数ありますか?

マップ内のエントリが 1 つだけ追加または更新された場合、MapStore.store(key, value)後書きが有効になっていても が呼び出されます。 MapStore.storeAll(map)複数のエントリを保存する必要がある場合にのみ呼び出されます。

関連するコードは次のとおりですcom.hazelcast.impl.CMap.runStoreUpdate()(メンバーstoreのタイプは ですMapStore):

if (updates.size() == 1) {
    Map.Entry entry = updates.entrySet().iterator().next();
    store.store(entry.getKey(), entry.getValue());
} else if (updates.size() > 1) {
    store.storeAll(updates);
}

MapStore.delete()とについても同様MapStore.deleteAll()です。

このコードは、GithubのHazelcast ソースのコンテキストで確認できます。

于 2013-01-16T17:24:56.033 に答える