Grails的版本工作:3.0.9控制器動作緩存不會出現使用Grails緩存插件
Groovy的版本:2.4.5
JVM版本:1.8.0_60
我使用的Grails緩存插件
http://grails-plugins.github.io/grails-cache/3.0.1/guide/index.html
而且我已經取得了一些成功的高速緩存服務的方法,如:
@Transactional
class EventCategoryService {
@Cacheable('eventCategory')
def findAllSports() {
def sportCategories
log.info('called EventCategoryService.findAllSports')
sportCategories = EventCategory.findAllByParentCategoryName("Sport", [sort: "order"])
}
}
一旦創建了緩存,就不會在預期的後續調用的日誌中看到'調用EventCategoryService.findAllSports'的日誌。
但是,插件在名爲「控制器操作緩存」的部分中聲明「您也可以使用相同的註釋來緩存對Web請求的響應」。
@Cacheable('eventCategory')
def index(IndexCommand command) {
command.init()
log.info('called frontend:index')
render (view: "index", model: [command: command, distances: distances])
}
不幸的是,每個呼叫我看到「叫前端:指數」出現在日誌和一些基本的時間確認,目前是在通話過程中的速度沒有增加。
我錯過了一個招數?我無法找到解決方案,所以任何幫助將不勝感激。
我會包含命令對象,如果這對緩存有任何影響?
class IndexCommand {
def searchService
def eventCategoryService
int max
int offset
String search
java.util.Date queryStartDate = new Date()
java.util.Date queryEndDate = new Date().plus(365)
def sportCategories
def results
def benchmark = { closure ->
def start = System.currentTimeMillis()
closure.call()
def now = System.currentTimeMillis()
now - start
}
def init() {
if (!max) max = 6
if (!offset) offset = 0
def duration = benchmark {
results = searchService.advancedSearchWithPagedResults(
max,
offset,
search,
queryStartDate,
queryEndDate)
}
log.info("searchService.advancedSearchWithPagedResults took ${duration} ms")
duration = benchmark {
sportCategories = eventCategoryService.findAllSports()
}
log.info("EventCategory.findAllByParentCategoryName took ${duration} ms")
}
}
這很有道理,感謝您的幫助。我會試一試。 –
我想你剛剛被自動分配了賞金。道歉,認爲我接受你的答案時已經這樣做了。再次感謝。 –