Как получить время простоя Pivotal Cloud Cache для сброса при доступе - PullRequest
0 голосов
/ 04 января 2019

Мы пытаемся настроить срок действия кэша в Pivotal Cloud Cache, используя Gemfire. Мы настроили наш регион в PCF:

Cluster-0 gfsh>describe region --name=/CartTest
 Type  |          Name           | Value
------ | ----------------------- | ---------
Region | data-policy             | PARTITION
       | entry-idle-time.timeout | 60
       | size                    | 0
       | statistics-enabled      | true
       | entry-idle-time.action  | DESTROY

Когда мы создаем наш Cart объект, он записывается в кеш (мы можем см. это в записи size выше).

Если мы обращаемся к нашему объекту из нашего кода, он, похоже, не обновляет время доступа к записи. Например:
@ 11: 00: 00 - создать запись
@ 11: 00:30 - доступ к записи
@ 11: 01: 00 - запись пропала

Я ожидал бы, что запись все еще будет существовать до 11:01:30 (я использую смехотворно короткие тайм-ауты только для тестирования). Кажется, что простой почти ведет себя как Time-To-Live. Когда мы смотрим на lastAccessTime для региона, используя gfsh, он не обновляется.

Есть идеи, что я здесь не так делаю?

Ответы [ 2 ]

0 голосов
/ 05 января 2019

ИСПРАВЛЕНИЕ: Причина, по которой lastAccessedTime не обновлялась, заключалась в том, что мы не получали запись через поле идентификатора, мы искали в двух других полях объекта. Когда мы взяли эти два поля и создали составной ключ и сделали его полем @Id, тогда время было обновлено, когда мы получили объект.

В разделенных областях Gemfire любой доступ к дополнительному разделу не обновляет lastAccessedTime основного. Так что это не будет делать то, что мы хотим, нам нужно добавить код.

0 голосов
/ 04 января 2019

Несколько вещей для проверки.

  • Не могли бы вы поделиться кодом, показывающим, как вы храните данные в регионах PCC?
  • Правильно ли указано название региона? Поскольку вы используете region CarTest в gfsh, ваша аннотация @ Region (предполагается, что вы используете spring-data-gemfire на стороне клиента) также должна использовать CarTest название региона.

Простой способ поместить данные с помощью SDG (spring-data-gemfire) - через Spring Data Repository абстракция.

Пожалуйста, ознакомьтесь с примером приложения здесь . В частности, класс домена может быть создан как здесь , а хранилище может быть создано как здесь

...