2016-07-13 9 views
0

Ich bin neu zu Hazecast, derzeit ich ein System, wo ich Szenario, wo ich 2 Cache [im Grunde 2 Karten in der Einzelinstanz] Cache 1 und Cache2.Hazelcast Block Listener bis Cache geladen

Wenn mein Hazelcast Server auftaucht und sobald Cache2 geladen ist, wird ein Listener ausgelöst. Aber Cache 1 ist noch nicht geladen und der Listener versucht auch aus Cache1 zu lesen, was eine Geschäftsanforderung ist.

Gibt es trotzdem für mich zu finden, ob der Cache1 beim Trigger von Listener geladen wird oder um das Auslösen zu blockieren, bis auch cache1 geladen ist.

+0

Können Sie Postleitzahl PLZ/Config Snippet? Ich muss wissen, wie Sie mit dem Hörer umgehen. –

+0

auch, bitte, loader code. –

Antwort

0

Nein, es gibt keine Möglichkeit zu überprüfen, ob die Map geladen ist, oder den Trigger eines Listeners auf MapB zu blockieren, abhängig vom Laden von MapA. Dies sind zwei unabhängige Datenstrukturen.

Sie können versuchen, den Wert InitialLoadingMode von MapA auf "Lazy" zu setzen, sodass nur die berührte Partition geladen wird, wenn der Datensatz berührt wird. Es wird schneller als das Laden der Karte vollständig sein.

Sie können loadAll auch auf MapA aufrufen - es handelt sich um einen blockierenden Aufruf, der nur zurückgegeben wird, wenn die Karte geladen wurde. Dann beginnen Sie mit MapB zu spielen - es ist zu diesem Zeitpunkt 100% sicher, dass der Zuhörer nicht blockieren wird.