Есть ли способ Grails для кэширования объектов домена Grails с тайм-аутом - PullRequest
0 голосов
/ 14 июня 2019

Для таблиц, которые никогда не изменятся до конца вечности, вы можете добавить это к классу домена:

static mapping = {
    cache true
}

Однако в реальной жизни это практически бесполезно, так как все таблицы меняются, дажеесли это медленно.Например, у нас есть таблица валюты и страны.Мы читаем его с каждым запросом.

Возможно, мы добавим или удалим валюты (например, если мы их больше не поддерживаем) или изменим страну, но это может происходить один раз в месяц или даже год.Однако при изменении новая версия ДОЛЖНА быть подобрана с перезапуском сервера.

Т.е. кэш должен иметь какое-то время ожидания, поэтому он может обновляться.

Есть лиПлагин или решение этого для Grails 3?

Может быть, работа, которая запускается каждый час, и как-то, как заставить кэши перечитывать?

Grails 3.3.8 (Grails 4 не являетсявариант в настоящее время)

1 Ответ

0 голосов
/ 14 июня 2019

Знание дополнительных сведений о приложении может повлиять на рекомендацию, но простой подход состоит в том, чтобы настроить службу с использованием @Cacheable методов, которые возвращают соответствующую информацию (вероятно, лучше не кэшировать фактическую сущность, но кеширование информации в сущности - это хорошо ). Вы можете удалять / обновлять кэш с любой частотой или в ответ на любые события в приложении, которые вам нравятся.

https://grails -plugins.github.io / Grails-кэш / 3.0.2 / index.html

...