Hazelcast обеспечивает предварительную загрузку Near Cache для члена - PullRequest
0 голосов
/ 23 сентября 2019

У меня есть сценарий использования, когда мне нужно убедиться, что данные загружены в почти кеш, прежде чем работать с ним.Я использую Hazelcast в качестве поставщика Cache Manager.Я храню данные в ближнем кеше в формате OBJECT in-memory и кеширую локальные записи.При запуске приложения я делаю теплый кеш, вызывая кешированный сервисный метод:

      @Override
      public void onApplicationEvent(final ApplicationReadyEvent applicationReadyEvent) {

       applicationReadyEvent.getApplicationContext().getBean(MyService.class).myCachedMethod(); //1 warm cahce

       applicationReadyEvent.getApplicationContext().getBean(MyService.class).myCachedMethod(); //2 warm near cache here

       MyData myData = applicationReadyEvent.getApplicationContext().getBean(MyService.class).myCachedMethod(); // 3 warm near cache here 
      //4
      //work with data from near cache here
        myDtata.doStufff();
      }

После этого я несколько раз вызываю один и тот же метод, чтобы загрузить данные в ближний кеш.Проблема в том, что иногда кэш не загружается, когда я пытаюсь работать с данными метода.Похоже, что Near Cache загружается асинхронно, и я продолжаю получать данные не из ближнего кэша на шаге 4. Итак, мой вопрос - есть ли возможность сделать возможной предварительную загрузку NearCache или обеспечить заполнение NearCache в определенный момент?Даже если это означает, что нужно подождать некоторое время, прежде чем оно будет заполнено, перед использованием.Добавление Thread.sleep() помогает мне, но это ни в коем случае нельзя.Версия Hazelcast 3.11.4

Любая помощь приветствуется.

...