Мое приложение имеет пару служб, которые делают внешние вызовы через httpClient (GET и POST), которые вряд ли будут меняться в течение нескольких месяцев, но они медленны; делая мое приложение еще медленнее. Уточнение: это НЕ о кешировании GORM/hibernate/queries для моего db.Как настроить кеширование метода службы в grails
Как кешировать эти методы (сохранение на диске получает бонусные баллы ...) в grails 2.1.0?
Я установил плагин grails-cache-plugin, но он, похоже, не работает, или я настроил его неправильно (очень сложно сделать, поскольку есть только 2-5 строк для добавления, но мне удалось это сделать это в прошлом)
Я также попытался настроить прокси-сервер nginx перед моим приложением, но когда я представляю одну из своих форм с небольшими изменениями, я получаю первое представление в качестве результата.
Любые предложения/идеи будут очень признательны.
EDIT: Текущее решение (на основе ответа Marcin в)
Мой Config.groovy: (кэширование часть только)
//caching
grails.cache.enabled = true
grails.cache.clearAtStartup = false
grails.cache.config = {
defaults {
timeToIdleSeconds 3600
timeToLiveSeconds 2629740
maxElementsInMemory 1
eternal false
overflowToDisk true
memoryStoreEvictionPolicy 'LRU'
}
diskStore {
path 'cache'
}
cache {
name 'scoring'
}
cache {
name 'query'
}
}
Важные детали:
- сделать непонятно при запуске (grails.cache.clearAtStartup = false)
- overflowToDisk = true persists все результаты по maxElementsInMemory
- maxElementsInMemory = 1 уменьшенное количество элементов в памяти
- «diskStore» должен быть доступен для записи пользователем, запускающим приложение.
Плагин кеша должен быть способ перехода. Что вы делали, это не сработало? – doelleri