Конфигурация кеша для определенного объекта в Moqui

Я протестировал конфигурацию кеша на конкретном продукте сущности, связанное с Linkedin обсуждение здесь.

У меня есть конфигурация элемента кеша как

<cache name="entity.record.one.mantle.product.Product" expire-time-idle="60" expire-time-live="600"/>

введите здесь описание изображения

Есть проблемы:

  • expire-time-live кажется не обновленным, так как он не отображается на странице CacheList приложения Tools.

  • хотя для параметра expire to idle установлено значение 60 секунд, когда имя продукта обновляется на 60 секунд (на самом деле test ‹10), продукт, полученный из кеша, возвращает обновленное имя продукта.

Я не уверен, желательно ли второе поведение. Возможно, обновление продукта очищает кеш фреймворком. Если да, то это замечательная особенность. Если нет, значит, проблема, значит, результат не из кеша.


person Jimmy Shen    schedule 15.08.2016    source источник
comment
Я провожу тест, кажется, второе - желаемое поведение. После обновления кеш удаляется, и в следующий раз доступ будет пропущен и будет получено новое значение обновления.   -  person Jimmy Shen    schedule 15.08.2016


Ответы (1)


По пункту 1: разрешено только одно время истечения времени ожидания, либо в режиме ожидания, либо в режиме реального времени, и если оба указаны, используется время истечения срока бездействия. В основном базовый кеш может иметь одну политику истечения срока действия, которая имеет тип (бездействующий, активный) и время в секундах.

По пункту 2: Да, это ожидаемое поведение. Автоматическая очистка кеша всегда должна работать, когда запись обновляется, если она кэширована, даже кэшированные объекты представления и списки значений. Для этого есть довольно сложный код и различные автоматизированные тесты, чтобы убедиться, что он работает в разных сценариях.

При развертывании с несколькими серверами приложений в настоящее время рекомендуемый подход для обработки автоматической очистки кеша на всех серверах, независимо от того, на каком сервере изменяется запись (значение объекта), заключается в использовании компонента moqui-hazelcast, который использует распределенную тему для отправки сообщений о обновленные записи, которые каждый сервер может использовать для автоматической очистки кеша в зависимости от того, что кэшировал каждый сервер.

person David E. Jones    schedule 15.08.2016